aah Log Configuration
The configuration syntax is used by aah framework is very similar to HOCON syntax. To learn more about configuration syntax.
This document describes aah log configurations. Typically log configuration done at every environment profile level and you override it via external config file.
Reference to App Config, Routes Config, Security Config.
log.receiver
Receiver is where the log values gets logged. Out-of-the-box framework supports console
and file
receivers. Also you can add Hooks
into per aah logger instance, for sending log data to splunk, kibana, etc.
Default value is console
.
receiver = "file"
log.level
Level indicates the logging levels like ERROR
, WARN
, FATAL
, PANIC
, INFO
, DEBUG
and TRACE
. Config value can be in lowercase or uppercase.
Default value is DEBUG
.
level = "info"
log.format
To define log entry output format. Supported formats are text
and json
.
Default value is text
.
format = "json"
log.pattern
Pattern config is defined composable log pattern. Patten flag is used as %flagname
or %flagname:format
.
Supported log patterns are:
FmtFlags is the list of log format flags supported by aah log library
Usage of flag order is up to format composition.
level - outputs ERROR, WARN, FATAL, PANIC, INFO, DEBUG, TRACE
appname - outputs Application Name
insname - outputs Application Instance Name
reqid - outputs Request ID from HTTP header
principal - outputs Logged-In subject primary principal value
time - outputs local time as per format supplied
utctime - outputs UTC time as per format supplied
longfile - outputs full file name: /a/b/c/d.go
shortfile - outputs final file name element: d.go
line - outputs file line number: L23
message - outputs given message along supplied arguments if they present
fields - outputs field values into log entry
custom - outputs string as-is into log entry
Note: Log pattern is not applicable of JSON log format.
Default value is %time:2006-01-02 15:04:05.000 %level:-5 %message
.
pattern = "%time:2006-01-02 15:04:05 %level:-5 %shortfile %line %custom:- %message"
log.color
Log colored output, applicable only to console
receiver type.
Default value is true
.
color = false
log.file
File config attribute is applicable only to file
receiver type.
Default value is aah-log-file.log
.
file = "myapp.log"
Section: rotate { … }
Rotate config section is applicable only to file
receiver type.
log.rotate.policy
Policy is used to determine rotate policy. Currently it supports daily
, lines
and size
.
Default value is daily
.
# daily rotation, it's default one.
rotate {
policy = "daily"
}
# size based rotation
rotate {
policy = "size"
size = "512mb"
}
# line based rotation
rotate {
policy = "lines"
lines = 100000
}
log.rotate.size
This is applicable only to if policy
is size
.
Default value is 512mb.
size = "100mb"
log.rotate.lines
This is applicable only to if policy
is lines
.
Default value is 100000.
lines = 50000