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:
import logs "github.com/bytehide/bytehide-logs-go"
// Set your project token
logs.SetProjectToken("your-project-token-here")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:
// Reads from BYTEHIDE_LOGS_TOKEN, BYTEHIDE_PROJECT_TOKEN, or PROJECT_TOKEN
logs.SetProject()// 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:
- Navigate to your Logs project dashboard
- Copy your project token from the project settings
- Use the token in your application configuration
Environment-Based Configuration
Using Environment Variables
import (
"os"
logs "github.com/bytehide/bytehide-logs-go"
)
// Get token from environment variable
projectToken := os.Getenv("BYTEHIDE_LOGS_TOKEN")
logs.SetProjectToken(projectToken)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
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)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
// Uses SetProject() to automatically load from environment
logs.SetProject()// Uses SetProject() to automatically load from environment
logs.SetProject()Token Behavior
| Scenario | Behavior |
|---|---|
| Token Set | Logs sent to ByteHide cloud + local files (if enabled) |
| No Token | Logs only stored in local files |
| Invalid Token | Logs 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.
Option 1: Environment Variables (Recommended)
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"))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
// ✅ Reads from BYTEHIDE_LOGS_TOKEN, BYTEHIDE_PROJECT_TOKEN, or PROJECT_TOKEN
logs.SetProject()// ✅ 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):
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())
}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
ENV BYTEHIDE_LOGS_TOKEN=""# Dockerfile
ENV BYTEHIDE_LOGS_TOKEN=""// In your Go application
logs.SetProject() // Automatically reads BYTEHIDE_LOGS_TOKEN from environment// In your Go application
logs.SetProject() // Automatically reads BYTEHIDE_LOGS_TOKEN from environmentValidation
Check if your token is working:
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")
}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")
}