Updated hlog documentation to comply with GOLIB rules.

- Added comprehensive README.md with proper format and version number
- Enhanced doc.go with complete godoc-compliant documentation
- Updated RULES.md to clarify wiki home page requirement

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-13 13:20:40 +11:00
parent 7471ae881b
commit 52341aba56
3 changed files with 106 additions and 13 deletions

73
hlog/README.md Normal file
View File

@@ -0,0 +1,73 @@
# 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

View File

@@ -24,18 +24,22 @@
//
// # Configuration
//
// hlog can be configured via environment variables:
// hlog can be configured via environment variables using ConfigFromEnv:
//
// LOG_LEVEL=info # trace, debug, info, warn, error, fatal, panic (default: info)
// LOG_OUTPUT=console # console, file, or both (default: console)
// LOG_DIR=/var/log/app # Required when LOG_OUTPUT is "file" or "both"
// LOG_LEVEL=info # trace, debug, info, warn, error, fatal, panic (default: info)
// LOG_OUTPUT=console # console, file, or both (default: console)
// LOG_DIR=/var/log/app # Required when LOG_OUTPUT is "file" or "both"
// LOG_FILE_NAME=server.log # Required when LOG_OUTPUT is "file" or "both"
// LOG_APPEND=true # Append to existing file or overwrite (default: true)
//
// Or programmatically:
//
// cfg := &hlog.Config{
// LogLevel: hlog.InfoLevel,
// LogOutput: "both",
// LogDir: "/var/log/myapp",
// LogLevel: hlog.InfoLevel,
// LogOutput: "both",
// LogDir: "/var/log/myapp",
// LogFileName: "server.log",
// LogAppend: true,
// }
//
// # Log Levels
@@ -52,13 +56,27 @@
// # Output Modes
//
// - console: Logs to the provided io.Writer (typically os.Stdout or os.Stderr)
// - file: Logs to a file named "server.log" in the configured directory
// - both: Logs to both console and file simultaneously
// - file: Logs to a file in the configured directory
// - both: Logs to both console and file simultaneously using zerolog.MultiLevelWriter
//
// # File Management
//
// When using file output, hlog creates a file named "server.log" in the
// specified directory. The file is opened in append mode, so logs persist
// across application restarts. Remember to call CloseLogFile() when shutting
// down your application to ensure all logs are flushed.
// When using file output, hlog creates a file with the specified name in the
// configured directory. The file can be opened in append mode (default) to
// preserve logs across application restarts, or in overwrite mode to start
// fresh each time. Remember to call CloseLogFile() when shutting down your
// application to ensure all logs are flushed to disk.
//
// # Error Stack Traces
//
// hlog automatically configures zerolog to include stack traces for errors
// wrapped with github.com/pkg/errors. This provides detailed error context
// when using errors.Wrap or errors.WithStack.
//
// # Integration
//
// hlog integrates with:
// - git.haelnorr.com/h/golib/env: For environment variable configuration
// - github.com/rs/zerolog: The underlying logging implementation
// - github.com/pkg/errors: For error stack trace support
package hlog