// Package l4g provides logging functionality for the application. // // This package implements two separate logging systems: // // # MAIN LOGGER // // The main logger is configurable via the LOGGER_TYPE environment variable // and is used for structured application logging: // // - LOGGER_TYPE="terminal" - Outputs to stdout with formatted messages // - LOGGER_TYPE="file" - Writes to a log file (default: ./app.log) // - LOGGER_TYPE="database" - Stores structured log entries in the database // // Use the main logger for: // - User activities and business logic events // - Error logging and exception handling // - Audit trails and security events // - System state changes // // Example usage: // // l4g.Init(config.GetConfig().LoggerType) // entry := model.LogEntry{ // LogType: l4g.LOG_TYPE_USER, // Severity: l4g.SEVERITY_INFO, // Content: &message, // } // l4g.Write(entry) // // # DEBUG LOGGER // // The debug logger is completely separate and always outputs to terminal, // regardless of the main logger configuration. It's used for development // and initialization messages that should always be visible: // // - Program initialization and startup messages // - Development debugging and troubleshooting // - Server configuration and status information // // Use the debug logger for: // - Package initialization messages // - Server startup and configuration // - Development debugging (temporary print statements) // - System health checks during startup // // Example usage: // // l4g.DebugInit("Initializing database connection") // l4g.DebugServer("Server listening on port 8080") // l4g.Debug("Temporary debug message") // // # LOG TYPES AND SEVERITY LEVELS // // Log Types: // - LOG_TYPE_SYSTEM: System-level events and operations // - LOG_TYPE_USER: User activities and interactions // - LOG_TYPE_ORG: Organization-level events // - LOG_TYPE_AUDIT: Security and compliance events // // Severity Levels: // - SEVERITY_DEBUG: Development and troubleshooting information // - SEVERITY_INFO: General informational messages // - TYPE_WARN: Warning conditions that should be noted // - SEVERITY_ERROR: Error conditions that affect functionality // - SEVERITY_FATAL: Critical errors that cause program termination package l4g