# README
logging
Golang logging library with logrus and graylog hook support
import log "github.com/gokhanm/logging"
func main() {
// you can set your own logrus formatter. text, json ..
formatter = &log.TextFormatter{
TimestampFormat: "2006-01-02 15:04:05",
ForceColors: true,
FullTimestamp: true,
}
logger := log.Initialize(formatter)
// Initialize returns logrus Logger pointer.
// with this you can use logrus functions if your want
logger.SetLevel(logrus.DebugLevel)
}
Multi-custom logrus fields and aync graylog hook example
import log "github.com/gokhanm/logging"
func main() {
// or you can use the default text logrus formatter in the lib.
log.Initialize(nil)
// you can have fields always attached to log statements by SetDefaultFields in an application
fields := map[string]interface{}{"name": "gokhan", "app": "appName"}
log.SetDefaultFields(fields)
// also if you use graylog log management system
// you can send your log data to the graylog as async
log.AddAsyncGraylogHook("127.0.0.1", "1000", nil)
}
# Functions
AddAsyncGraylogHook also send log data to graylog.
Printf calls Output to print to the standard logger.
Println calls Output to print to the standard logger.
Errorf calls Output to print to the standard logger with error level.
Errorln calls Output to print to the standard logger with error level.
Fatalf is equivalent to Logf() followed by a call to os.Exit(1).
Fatalln is equivalent to Logln() followed by a call to os.Exit(1).
Initialize is using default set text formatter if formatter is nil.
Printf calls Output to print to the standard logger.
Println calls Output to print to the standard logger.
SetDefaultFields, you can have fields always attached to log statements in application.
SplitLogs adds hooks to send logs to different destinations depending on level.
Warnf calls Output to print to the standard logger with warm level.
Warnln calls Output to print to the standard logger with warm level.
# Structs
WriterHook is a hook that writes logs of specified LogLevels to specified Writer.