/

Project Token Configuration

The project token connects your application to the ByteHide cloud platform. With a token, logs are automatically sent to the cloud. Without it, logs are only stored locally.

Setting the Project Token

Configure your project token using the SetProjectToken function:

Go
import logs "github.com/bytehide/bytehide-logs-go"

// Set your project token
logs.SetProjectToken("your-project-token-here")

Using Environment Variables

The SDK can automatically load your project token from environment variables:

Go
// Reads from BYTEHIDE_LOGS_TOKEN, BYTEHIDE_PROJECT_TOKEN, or PROJECT_TOKEN
logs.SetProject()

Obtaining Your Project Token

To get your project token, you first need to create a Logs project in the ByteHide dashboard.

Create Logs Project

If you haven't created a Logs project yet, follow our step-by-step guide: Create a Logs project

Once your project is created:

  1. Navigate to your Logs project dashboard
  2. Copy your project token from the project settings
  3. Use the token in your application configuration

Environment-Based Configuration

Using Environment Variables

Go
import (
    "os"
    logs "github.com/bytehide/bytehide-logs-go"
)

// Get token from environment variable
projectToken := os.Getenv("BYTEHIDE_LOGS_TOKEN")
logs.SetProjectToken(projectToken)

Using os.Getenv with Fallback

Go
import "os"

projectToken := os.Getenv("BYTEHIDE_LOGS_TOKEN")
if projectToken == "" {
    projectToken = os.Getenv("BYTEHIDE_PROJECT_TOKEN")
}
if projectToken == "" {
    projectToken = os.Getenv("PROJECT_TOKEN")
}
logs.SetProjectToken(projectToken)

Automatic Environment Variable Loading

Go
// Uses SetProject() to automatically load from environment
logs.SetProject()

Token Behavior

ScenarioBehavior
Token SetLogs sent to ByteHide cloud + local files (if enabled)
No TokenLogs only stored in local files
Invalid TokenLogs fallback to local files only

Security Best Practices

Token Security

Never hardcode tokens in your source code. Use environment variables or a secrets management solution for maximum security.

Go
import (
    "os"
    logs "github.com/bytehide/bytehide-logs-go"
)

// ❌ Don't do this
logs.SetProjectToken("bh_1234567890abcdef")

// ✅ Do this instead
logs.SetProjectToken(os.Getenv("BYTEHIDE_LOGS_TOKEN"))

Option 2: Automatic Environment Variable Loading

Go
// ✅ Reads from BYTEHIDE_LOGS_TOKEN, BYTEHIDE_PROJECT_TOKEN, or PROJECT_TOKEN
logs.SetProject()

Option 3: Configuration Files

Use a configuration file (not committed to source control):

Go
import (
    "os"
    "encoding/json"
    "io/ioutil"
    logs "github.com/bytehide/bytehide-logs-go"
)

type Config struct {
    BytehideLogsToken string `json:"bytehide_logs_token"`
}

func loadTokenFromConfig() string {
    data, err := ioutil.ReadFile(".config.json")
    if err != nil {
        return os.Getenv("BYTEHIDE_LOGS_TOKEN")
    }

    var config Config
    json.Unmarshal(data, &config)
    return config.BytehideLogsToken
}

func init() {
    logs.SetProjectToken(loadTokenFromConfig())
}

Option 4: Docker/Kubernetes Secrets

Use secrets management in containerized environments:

DOCKERFILE
# Dockerfile
ENV BYTEHIDE_LOGS_TOKEN=""
Go
// In your Go application
logs.SetProject()  // Automatically reads BYTEHIDE_LOGS_TOKEN from environment

Validation

Check if your token is working:

Go
import (
    "log"
    logs "github.com/bytehide/bytehide-logs-go"
)

func validateToken() {
    logs.SetProjectToken("your-token")
    logs.SetConsoleEnabled(true)
    logs.Info("Test log message")
    
    // Check ByteHide dashboard to confirm logs are received
    log.Println("Check your ByteHide dashboard for the test log message")
}

Next Steps

Previous
Quick Start