python碎碎念

在python程序中添加日志功能

2019-06-13  本文已影响0人  你说你要一场
import logging

logging.basicConfig(level=logging.DEBUG,#控制台打印的日志级别
                    filename='new.log',
                    filemode='a',##模式,有w和a,w就是写模式,每次都会重新写日志,覆盖之前的日志
                    #a是追加模式,默认如果不写的话,就是追加模式
                    format=
                    '%(asctime)s -  %(levelname)s: %(message)s'
                    #日志格式
                    )

要打印信息的地方用 logging.info()

注意:

basicConfig里level设置没问题,大于等于它的都要输出。
但是当有log文件时,它就不再向终端打印了。

同时输出方法:

import logging
logging.basicConfig(format='%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s',
                    level=logging.INFO,filename='new2.log')
console = logging.StreamHandler()
console.setLevel(logging.INFO)
formatter = logging.Formatter('%(name)-12s: %(levelname)-8s %(message)s')
console.setFormatter(formatter)
logging.getLogger('').addHandler(console)

logging.debug('debug 信息')
logging.info('info 信息')
logging.warning('warning 信息')
logging.error('error 信息')
logging.critical('critial 信息')

logger1 = logging.getLogger('myapp.area1')
logger2 = logging.getLogger('myapp.area2')

logger1.debug('Quick zephyrs blow, vexing daft Jim.')
logger1.info('How quickly daft jumping zebras vex.')
logger2.warning('Jail zesty vixen who grabbed pay from quack.')
logger2.error('The five boxing wizards jump quickly.')

终端效果:

h@h-B360M-D2VX-SI:~/models/公司项目/3.智能客服$ python3 test_logging.py 
root        : INFO     info 信息
root        : WARNING  warning 信息
root        : ERROR    error 信息
root        : CRITICAL critial 信息
myapp.area1 : INFO     How quickly daft jumping zebras vex.
myapp.area2 : WARNING  Jail zesty vixen who grabbed pay from quack.
myapp.area2 : ERROR    The five boxing wizards jump quickly.
h@h-B360M-D2VX-SI:~/models/公司项目/3.智能客服$ 

log文件中的效果:

2019-06-13 19:14:31,883 - test_logging.py[line:11] - INFO: info 信息
2019-06-13 19:14:31,883 - test_logging.py[line:12] - WARNING: warning 信息
2019-06-13 19:14:31,883 - test_logging.py[line:13] - ERROR: error 信息
2019-06-13 19:14:31,883 - test_logging.py[line:14] - CRITICAL: critial 信息
2019-06-13 19:14:31,883 - test_logging.py[line:20] - INFO: How quickly daft jumping zebras vex.
2019-06-13 19:14:31,883 - test_logging.py[line:21] - WARNING: Jail zesty vixen who grabbed pay from quack.
2019-06-13 19:14:31,883 - test_logging.py[line:22] - ERROR: The five boxing wizards jump quickly.

可见在终端里还可以给每个日志加上模块。

简言之,加上

console = logging.StreamHandler()
console.setLevel(logging.INFO)
formatter = logging.Formatter('%(name)-12s: %(levelname)-8s %(message)s')
console.setFormatter(formatter)
logging.getLogger('').addHandler(console)

就可以同时输出了。

上一篇 下一篇

猜你喜欢

热点阅读