# HLog - v0.10.1-hlogdoc A structured logging package for Go built on top of [zerolog](https://github.com/rs/zerolog). HLog provides simple configuration via environment variables, flexible output options, and automatic log file management. ## Features - Multiple output modes: console, file, or both simultaneously - Configurable log levels: trace, debug, info, warn, error, fatal, panic - Environment variable-based configuration with ConfigFromEnv - Automatic log file management with append or overwrite modes - Built on zerolog for high performance and structured logging - Error stack trace support via pkg/errors integration - Unix timestamp format - Console-friendly output formatting - Multi-writer support for simultaneous console and file output ## Installation ```bash go get git.haelnorr.com/h/golib/hlog ``` ## Quick Start ```go package main import ( "log" "os" "git.haelnorr.com/h/golib/hlog" ) func main() { // Load configuration from environment variables cfg, err := hlog.ConfigFromEnv() if err != nil { log.Fatal(err) } // Create a new logger logger, err := hlog.NewLogger(cfg, os.Stdout) if err != nil { log.Fatal(err) } defer logger.CloseLogFile() // Start logging logger.Info().Msg("Application started") logger.Debug().Str("user", "john").Msg("User logged in") logger.Error().Err(err).Msg("Something went wrong") } ``` ## Documentation For detailed documentation, see the [HLog Wiki](https://git.haelnorr.com/h/golib-wiki/HLog). Additional API documentation is available at [GoDoc](https://pkg.go.dev/git.haelnorr.com/h/golib/hlog). ## License This project is licensed under the MIT License - see the LICENSE file for details. ## Contributing Contributions are welcome! Please feel free to submit a Pull Request. ## Related Projects - [env](https://git.haelnorr.com/h/golib/env) - Environment variable helper used by hlog for configuration - [zerolog](https://github.com/rs/zerolog) - The underlying logging library