mirror of
https://github.com/gechandesu/structlog.git
synced 2026-04-15 05:43:19 +03:00
* Add os.File.flush() call to fix writing log into files. * Add comma as TextHandler fields separator. * Add struct_adapter() * Add field() generic function to creating Field instances. * Add new write_to_file.v example. * Rename Record.field() to Record.add()
28 lines
977 B
V
28 lines
977 B
V
import rand
|
|
import structlog
|
|
|
|
fn main() {
|
|
// Initialize logger with default configuratuion.
|
|
log := structlog.new()
|
|
defer {
|
|
// Since processing and writing the log is done in a separate thread,
|
|
// we need to wait for it to complete before exiting the program.
|
|
log.close()
|
|
}
|
|
|
|
// Write some logs.
|
|
//
|
|
// Note the call chain. First, the info() call creates a empty `structlog.Record`
|
|
// object with `info` log level. The next message() call adds a message field with
|
|
// the specified text to the record. The final send() call sends the record to the
|
|
// record handler (TextHandler by default) which writes log to stardard output.
|
|
log.info().message('Hello, World!').send()
|
|
|
|
// You can set your own named fields.
|
|
log.info().add('random_string', rand.string(100)).send()
|
|
log.info().add('answer', 42).add('computed_by', 'Deep Thought').send()
|
|
|
|
// Errors can be passed to logger as is.
|
|
log.error().message('this line contains error').error(error('oops')).send()
|
|
}
|