1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
|
; notes:
; - 'args' is mandatory in [handler_*] sections
; - in lists there must not be spaces
;
; top-level config
;
; list of all loggers
[loggers]
keys=root
; root logger sees everything. there can be per-job configs by
; specifing loggers with job_name of the script
; list of all handlers
[handlers]
;; seems logger module immidiately initalized all handlers,
;; whether they are actually used or not. so better
;; keep this list in sync with actual handler list
;keys=stderr,logdb,logsrv,logfile
keys=stderr
; list of all formatters
[formatters]
keys=short,long,none
;
; map specific loggers to specifig handlers
;
[logger_root]
level=DEBUG
;handlers=stderr,logdb,logsrv,logfile
handlers=stderr
;
; configure formatters
;
[formatter_short]
format=%(asctime)s %(levelname)s %(message)s
datefmt=%H:%M
[formatter_long]
format=%(asctime)s %(process)s %(levelname)s %(message)s
[formatter_none]
format=%(message)s
;
; configure handlers
;
; file. args: stream
[handler_stderr]
class=StreamHandler
args=(sys.stderr,)
formatter=short
; log into db. args: conn_string
[handler_logdb]
class=skylog.LogDBHandler
args=("host=127.0.0.1 port=5432 user=logger dbname=logdb",)
formatter=none
level=INFO
; JSON messages over UDP. args: host, port
[handler_logsrv]
class=skylog.UdpLogServerHandler
args=('127.0.0.1', 6666)
formatter=none
; rotating logfile. args: filename, maxsize, maxcount
[handler_logfile]
class=skylog.EasyRotatingFileHandler
args=('~/log/%(job_name)s.log', 100*1024*1024, 3)
formatter=long
|