代码改变世界

Python logger /logging

2018-05-19 18:50  钱先生  阅读(328)  评论(0编辑  收藏  举报
# !/user/bin/python
# -*- coding: utf-8 -*-
'''
subprocess : 需要在linux平台上测试 shell
logging
'''

import logging
# 将日志输出在文件里
# logging.basicConfig(filename="app.log", level=logging.DEBUG)
logging.basicConfig(filename="app.log",
                    level=logging.WARNING,
                    format='%(asctime)s %(levelname)s  %(filename)s:%(lineno)d  - %(message)s',
                    datefmt='%m/%d/%Y %I:%M:%S %p')  # 在日志上加上时间. %p代表pm.  TODO 为什么没打出行数?
logging.debug("test debug")
logging.info("test info")
logging.error("test error")
logging.warning("User [alex] attempted wrong password more than 3 times")


# 同时将日志打印在屏幕上并输出在文件里
# step 1, create logger
logger = logging.getLogger("TEST-LOG")
logger.setLevel(logging.DEBUG)

# step2, create console handler and set level to debug
ch=logging.StreamHandler()
ch.setLevel(logging.DEBUG)

# step3, create file handler and set level to warning
fh = logging.FileHandler("process.log")
fh.setLevel(logging.ERROR)

# step3, define format
fh_formatter = logging.Formatter('%(asctime)s %(levelname)s  %(filename)s:%(lineno)d  - %(message)s')
ch_formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')

fh.setFormatter(fh_formatter)
ch.setFormatter(ch_formatter)

# step4, connect handlers to logger
logger.addHandler(fh)
logger.addHandler(ch)

logger.warning("ddddd")

 

LevelWhen it’s used
DEBUG Detailed information, typically of interest only when diagnosing problems.
INFO Confirmation that things are working as expected.
WARNING An indication that something unexpected happened, or indicative of some problem in the near future (e.g. ‘disk space low’). The software is still working as expected.
ERROR Due to a more serious problem, the software has not been able to perform some function.
CRITICAL A serious error, indicating that the program itself may be unable to continue running.