洛杰森
logjson的Python项目详细描述
logjson
goal:轻松生成结构化json日志记录。 logstash模式是可选的。
importloggingimportlogjsonlogger=logging.getLogger('blah')handler=logging.StreamHandler()handler.setFormatter(logjson.JSONFormatter(pretty=True))logger.addHandler(handler)logger.info('hi %s%s!','you','there')
输出:
{"name":"blah","msg":"hi %s %s!","args":["you","there"],"levelname":"INFO","levelno":20,"pathname":"<snip>","filename":"test_main.py","module":"test_main","exc_text":null,"stack_info":null,"lineno":17,"funcName":"test_main","created":1511750128.6285746,"msecs":628.5746097564697,"relativeCreated":23.08201789855957,"thread":139929130264384,"threadName":"MainThread","processName":"MainProcess","process":18460,"message":"hi you there!","created_iso":"2017-11-27T02:35:28.628575+00:00"}
logstash模式只有一个参数:
logger=logging.getLogger('ls')handler=logging.StreamHandler()handler.setFormatter(logjson.JSONFormatter(pretty=True,logstash_mode=True))logger.addHandler(handler)logger.info('logstash test')
输出:
{"@message":"logstash test","@source_host":"localhost.localdomain","@timestamp":"2017-11-27T02:35:28.631275+00:00","@fields":{"name":"ls","msg":"logstash test","args":[],"levelname":"INFO","levelno":20,"pathname":"<snip>","filename":"test_main.py","module":"test_main","exc_text":null,"stack_info":null,"lineno":42,"funcName":"test_logstash","created":1511750128.631275,"msecs":631.274938583374,"relativeCreated":25.782346725463867,"thread":139929130264384,"threadName":"MainThread","processName":"MainProcess","process":18460}}