/

Environment Variables Configuration

Environment variables provide a flexible way to configure ByteHide Logger across different environments without changing code. Ideal for containerized applications and CI/CD deployments.

Project Token Environment Variables

The SDK checks the following environment variables in order:

  1. BYTEHIDE_LOGS_TOKEN
  2. BYTEHIDE_PROJECT_TOKEN
  3. PROJECT_TOKEN
Java
// Automatically reads from environment variables
Log.setProject();

Or read manually:

Java
String projectToken = System.getenv("BYTEHIDE_LOGS_TOKEN");
Log.setProjectToken(projectToken);

Common Environment Variables

Project Token

Bash
export BYTEHIDE_LOGS_TOKEN=your-project-token-here

Log Level

Bash
export BYTEHIDE_LOG_LEVEL=Info
Java
String logLevelStr = System.getenv("BYTEHIDE_LOG_LEVEL");
if (logLevelStr != null) {
    LogLevel level = LogLevel.valueOf(logLevelStr.toUpperCase());
    Log.setMinimumLevel(level);
}

File Path

Bash
export BYTEHIDE_LOG_PATH=logs/application.log
Java
String logPath = System.getenv("BYTEHIDE_LOG_PATH");
if (logPath != null) {
    Log.setPersist(true);
    Log.setFilePath(logPath);
}

Complete Environment Configuration

Environment Variables

Bash
# Core settings
BYTEHIDE_LOGS_TOKEN=your-project-token
BYTEHIDE_LOG_LEVEL=Info
BYTEHIDE_LOG_PATH=logs/app.log

# Console settings
BYTEHIDE_CONSOLE_ENABLED=true

# File settings
BYTEHIDE_ROLLING_INTERVAL=Day

# Performance settings
BYTEHIDE_DUPLICATE_SUPPRESSION_MS=5000

Application Configuration

Java
import com.bytehide.logs.core.Log;
import com.bytehide.logs.models.LogLevel;
import com.bytehide.logs.models.RollingInterval;

public class EnvironmentLoggerConfig {
    public static void initialize() {
        // Project token
        Log.setProject();
        
        // Log level
        String logLevel = System.getenv("BYTEHIDE_LOG_LEVEL");
        if (logLevel != null) {
            Log.setMinimumLevel(LogLevel.valueOf(logLevel.toUpperCase()));
        }
        
        // Console
        String consoleEnabled = System.getenv("BYTEHIDE_CONSOLE_ENABLED");
        Log.setConsoleEnabled("true".equalsIgnoreCase(consoleEnabled));
        
        // File logging
        String logPath = System.getenv("BYTEHIDE_LOG_PATH");
        if (logPath != null) {
            Log.setPersist(true);
            Log.setFilePath(logPath);
        }
        
        // Rolling interval
        String rollingInterval = System.getenv("BYTEHIDE_ROLLING_INTERVAL");
        if (rollingInterval != null) {
            Log.setRollingInterval(RollingInterval.valueOf(rollingInterval.toUpperCase()));
        }
        
        // Duplicate suppression
        String suppressionMs = System.getenv("BYTEHIDE_DUPLICATE_SUPPRESSION_MS");
        if (suppressionMs != null) {
            Log.setDuplicateSuppressionWindow(Long.parseLong(suppressionMs));
        }
    }
}

Docker Configuration

Dockerfile

DOCKERFILE
ENV BYTEHIDE_LOG_LEVEL=Warn
ENV BYTEHIDE_CONSOLE_ENABLED=false
ENV BYTEHIDE_LOG_PATH=logs/production.log

Docker Compose

YAML
version: '3.8'
services:
  myapp:
    image: myapp:latest
    environment:
      - BYTEHIDE_LOGS_TOKEN=${BYTEHIDE_LOGS_TOKEN}
      - BYTEHIDE_LOG_LEVEL=Info
      - BYTEHIDE_CONSOLE_ENABLED=false
      - BYTEHIDE_LOG_PATH=logs/app.log
      - BYTEHIDE_ROLLING_INTERVAL=Day
    volumes:
      - ./logs:/app/logs

Kubernetes Configuration

ConfigMap

YAML
apiVersion: v1
kind: ConfigMap
metadata:
  name: bytehide-logger-config
data:
  BYTEHIDE_LOG_LEVEL: "Info"
  BYTEHIDE_CONSOLE_ENABLED: "false"
  BYTEHIDE_LOG_PATH: "logs/k8s-app.log"
  BYTEHIDE_ROLLING_INTERVAL: "Day"

Secret for Token

YAML
apiVersion: v1
kind: Secret
metadata:
  name: bytehide-secrets
type: Opaque
data:
  BYTEHIDE_LOGS_TOKEN: <base64-encoded-token>

Deployment

YAML
apiVersion: apps/v1
kind: Deployment
metadata:
  name: myapp
spec:
  template:
    spec:
      containers:
      - name: myapp
        image: myapp:latest
        envFrom:
        - configMapRef:
            name: bytehide-logger-config
        - secretRef:
            name: bytehide-secrets

Environment-Specific Examples

Development

Bash
export BYTEHIDE_LOG_LEVEL=Debug
export BYTEHIDE_CONSOLE_ENABLED=true
export BYTEHIDE_LOG_PATH=logs/debug.log

Staging

Bash
export BYTEHIDE_LOGS_TOKEN=staging-token-here
export BYTEHIDE_LOG_LEVEL=Info
export BYTEHIDE_CONSOLE_ENABLED=false
export BYTEHIDE_LOG_PATH=logs/staging.log

Production

Bash
export BYTEHIDE_LOGS_TOKEN=production-token-here
export BYTEHIDE_LOG_LEVEL=Warn
export BYTEHIDE_CONSOLE_ENABLED=false
export BYTEHIDE_LOG_PATH=logs/production.log
export BYTEHIDE_DUPLICATE_SUPPRESSION_MS=10000

Best Practices

Environment Variables Best Practices

  • Use descriptive prefixes (e.g., BYTEHIDE_) to avoid conflicts
  • Provide sensible defaults in your configuration parsing
  • Keep sensitive data in secrets (project tokens, credentials)
  • Document required variables for your deployment team
  • Validate environment variables at application startup
Previous
File Logging