A simple logging library in Go demonstrating interface-based design.
Supports console and file logging that can be swapped without changing application logic.
- Logger interface abstraction
- Console logger
- File logger (append mode)
. ├── go.mod ├── main.go └── logger/ ├── logger.go ├── console_logger.go └── file_logger.go
var log logger.Logger
log = logger.FileLogger{Fn: "app.log"}
log.Info("Application started")
log.Error("Something went wrong")
log = logger.ConsoleLogger{}
log.Info("Now logging to console")
log.Error("Another error occurred")go mod init mini-logger
go run .