main/logger: Add log formatters and JSON structured logs
[asterisk/asterisk.git] / configs / samples / logger.conf.sample
1 ;
2 ; Logging Configuration
3 ;
4 ; In this file, you configure logging to files or to
5 ; the syslog system.
6 ;
7 ; "logger reload" at the CLI will reload configuration
8 ; of the logging system.
9
10 [general]
11 ;
12 ; Customize the display of debug message time stamps
13 ; this example is the ISO 8601 date format (yyyy-mm-dd HH:MM:SS)
14 ;
15 ; see strftime(3) Linux manual for format specifiers.  Note that there is also
16 ; a fractional second parameter which may be used in this field.  Use %1q
17 ; for tenths, %2q for hundredths, etc.
18 ;
19 ;dateformat=%F %T       ; ISO 8601 date format
20 ;dateformat=%F %T.%3q   ; with milliseconds
21 ;
22 ;
23 ; This makes Asterisk write callids to log messages
24 ; (defaults to yes)
25 ;use_callids = no
26 ;
27 ; This appends the hostname to the name of the log files.
28 ;appendhostname = yes
29 ;
30 ; This determines whether or not we log queue events to a file
31 ; (defaults to yes).
32 ;queue_log = no
33 ;
34 ; Determines whether the queue_log always goes to a file, even
35 ; when a realtime backend is present (defaults to no).
36 ;queue_log_to_file = yes
37 ;
38 ; Set the queue_log filename
39 ; (defaults to queue_log)
40 ;queue_log_name = queue_log
41 ;
42 ; When using realtime for the queue log, use GMT for the timestamp
43 ; instead of localtime.  The default of this option is 'no'.
44 ;queue_log_realtime_use_gmt = yes
45 ;
46 ; Log rotation strategy:
47 ; none:  Do not perform any logrotation at all.  You should make
48 ;        very sure to set up some external logrotate mechanism
49 ;        as the asterisk logs can get very large, very quickly.
50 ; sequential:  Rename archived logs in order, such that the newest
51 ;              has the highest sequence number [default].  When
52 ;              exec_after_rotate is set, ${filename} will specify
53 ;              the new archived logfile.
54 ; rotate:  Rotate all the old files, such that the oldest has the
55 ;          highest sequence number [this is the expected behavior
56 ;          for Unix administrators].  When exec_after_rotate is
57 ;          set, ${filename} will specify the original root filename.
58 ; timestamp:  Rename the logfiles using a timestamp instead of a
59 ;             sequence number when "logger rotate" is executed.
60 ;             When exec_after_rotate is set, ${filename} will
61 ;             specify the new archived logfile.
62 ;rotatestrategy = rotate
63 ;
64 ; Run a system command after rotating the files.  This is mainly
65 ; useful for rotatestrategy=rotate. The example allows the last
66 ; two archive files to remain uncompressed, but after that point,
67 ; they are compressed on disk.
68 ;
69 ; exec_after_rotate=gzip -9 ${filename}.2
70 ;
71 ;
72 ; For each file, specify what to log.
73 ;
74 ; For console logging, you set options at start of
75 ; Asterisk with -v for verbose and -d for debug
76 ; See 'asterisk -h' for more information.
77 ;
78 ; Directory for log files is configures in asterisk.conf
79 ; option astlogdir
80 ;
81 [logfiles]
82 ;
83 ; Format is:
84 ;
85 ; logger_name => [formatter]levels
86 ;
87 ; The name of the logger dictates not only the name of the logging
88 ; channel, but also its type. Valid types are:
89 ;   - 'console'  - The root console of Asterisk
90 ;   - 'syslog'   - Linux syslog, with facilities specified afterwards with
91 ;                  a period delimiter, e.g., 'syslog.local0'
92 ;   - 'filename' - The name of the log file to create. This is the default
93 ;                  for log channels.
94 ;
95 ; Filenames can either be relative to the standard Asterisk log directory
96 ; (see 'astlogdir' in asterisk.conf), or absolute paths that begin with
97 ; '/'.
98 ;
99 ; An optional formatter can be specified prior to the log levels sent
100 ; to the log channel. The formatter is defined immediately preceeding the
101 ; levels, and is enclosed in square brackets. Valid formatters are:
102 ;   - [default] - The default formatter, this outputs log messages using a
103 ;                 human readable format.
104 ;   - [json]    - Log the output in JSON. Note that JSON formatted log entries,
105 ;                 if specified for a logger type of 'console', will be formatted
106 ;                 per the 'default' formatter for log messages of type VERBOSE.
107 ;                 This is due to the remote consoles intepreting verbosity
108 ;                 outside of the logging subsystem.
109 ;
110 ; Log levels include the following, and are specified in a comma delineated
111 ; list:
112 ;    debug
113 ;    notice
114 ;    warning
115 ;    error
116 ;    verbose(<level>)
117 ;    dtmf
118 ;    fax
119 ;    security
120 ;
121 ; Verbose takes an optional argument, in the form of an integer level.
122 ; Verbose messages with higher levels will not be logged to the file.  If
123 ; the verbose level is not specified, it will log verbose messages following
124 ; the current level of the root console.
125 ;
126 ; Special level name "*" means all levels, even dynamic levels registered
127 ; by modules after the logger has been initialized (this means that loading
128 ; and unloading modules that create/remove dynamic logger levels will result
129 ; in these levels being included on filenames that have a level name of "*",
130 ; without any need to perform a 'logger reload' or similar operation).
131 ; Note that there is no value in specifying both "*" and specific level names
132 ; for a filename; the "*" level means all levels.  The only exception is if
133 ; you need to specify a specific verbose level. e.g, "verbose(3),*".
134 ;
135 ; We highly recommend that you DO NOT turn on debug mode if you are simply
136 ; running a production system.  Debug mode turns on a LOT of extra messages,
137 ; most of which you are unlikely to understand without an understanding of
138 ; the underlying code.  Do NOT report debug messages as code issues, unless
139 ; you have a specific issue that you are attempting to debug.  They are
140 ; messages for just that -- debugging -- and do not rise to the level of
141 ; something that merit your attention as an Asterisk administrator.  Debug
142 ; messages are also very verbose and can and do fill up logfiles quickly;
143 ; this is another reason not to have debug mode on a production system unless
144 ; you are in the process of debugging a specific issue.
145 ;
146 ;debug => debug
147 ;security => security
148 console => notice,warning,error
149 ;console => notice,warning,error,debug
150 messages => notice,warning,error
151 ;full => notice,warning,error,debug,verbose,dtmf,fax
152 ;
153 ;full-json => [json]debug,verbose,notice,warning,error,dtmf,fax
154 ;
155 ;syslog keyword : This special keyword logs to syslog facility
156 ;
157 ;syslog.local0 => notice,warning,error
158 ;