Log fields
A log is represented by this library as a collection of fields, represented by the LogFields go type, that translates to a simple map:
// fields.go// Just an aliastype LogFields = map[string]interface{}With this definition, this LogFields map:
m := LogFields{ "msg": "some log message", "lvl": 10, ... "custom": "field", ...}Can be seen, for example, as the following json object:
{ "msg": "some log message", "lvl": 10, ... "custom": "field", ...}In the following chapters, you will see how you can transform the LogFields go type into whatever you want (including json). If you don't want to wait, you can go directly to the Outputs page.
Inside the log fields, there are two fields that will always be present:
- One to identify the log
stringmessage (default key:msg) - One to identify the log
uint64level (default key:lvl)
A log is always created using the information from the Logger instance that created it. The Logger instance can be seen as a "template" of how the created logs should look like. This "template" (the Logger instance) can have 4 different types of fields:
Each one of them will be discussed in the following chapters.
caution
Since the message and level fields will always be present, if you try to set another field with the same key used by them, it will be overridden. Don't do it.
tip
You can customize the key used to represent the required fields (msg and lvl) using the Configuration.