python logger handler_python logging模块-->handler

之前写了一个logging简单的运用,主要是handler看不懂,看了头疼,最近不知道怎么灵光一现,似乎懂了点,趁热学习一下

1.通过名字不同,区别不同的logger,之前没有给name,导致log第一行一个,第二行两个,第三行三个……

import os

import time

import logging

import sys

def getlog(name):

Logname=name

logger=logging.getLogger(Logname)

logger.setLevel(logging.DEBUG)

formatter=logging.Formatter('%(asctime)s-%(levelname)s:%(message)s')

console_handler = logging.StreamHandler(sys.stdout)

console_handler.formatter = formatter

console_handler.setLevel(logging.DEBUG)

logger.addHandler(console_handler)

logfile='result_'+time.strftime('%Y%m%d%H%M%S')+'.log'

File_handler=logging.FileHandler(logfile, mode='a',encoding='utf8')

File_handler.setFormatter(formatter)

File_handler.setLevel(logging.DEBUG)

logger.addHandler(File_handler)

return logger

if __name__ == "__main__":

getlog('debug').debug('this is a logger debug message')

getlog('info').info('this is a logger info message')

getlog('warn').warning('this is a logger warning message')

getlog('error').error('this is a logger error message')

getlog('critical').critical('this is a logger critical message')

2.判断有无logger里有无handlers

import os

import time

import logging

import sys

def getlog():

logger=logging.getLogger()

logger.setLevel(logging.DEBUG)

formatter=logging.Formatter('%(asctime)s-%(levelname)s: %(message)s')

console_handler = logging.StreamHandler(sys.stdout)

console_handler.formatter = formatter

console_handler.setLevel(logging.DEBUG)

logfile='result_'+time.strftime('%Y%m%d%H%M%S')+'.log'

File_handler=logging.FileHandler(logfile, mode='a',encoding='utf8')

File_handler.setFormatter(formatter)

File_handler.setLevel(logging.DEBUG)

if not logger.handlers:

logger.addHandler(File_handler)

logger.addHandler(console_handler)

print(logger.handlers)

return logger

if __name__ == "__main__":

getlog().debug('this is a logger debug message')

getlog().info('this is a logger info message')

getlog().warning('this is a logger warning message')

getlog().error('this is a logger error message')

getlog().critical('this is a logger critical message')

3.removeHandler

import os

import time

import logging

import sys

def getlog(message):

logger=logging.getLogger()

logger.setLevel(logging.DEBUG)

formatter=logging.Formatter('%(asctime)s-%(levelname)s: %(message)s')

console_handler = logging.StreamHandler(sys.stdout)

console_handler.formatter = formatter

console_handler.setLevel(logging.DEBUG)

logfile='result_'+time.strftime('%Y%m%d%H%M%S')+'.log'

File_handler=logging.FileHandler(logfile, mode='a',encoding='utf8')

File_handler.setFormatter(formatter)

File_handler.setLevel(logging.DEBUG)

logger.addHandler(File_handler)

logger.addHandler(console_handler)

logger.debug(message)

logger.info(message)

logger.warning(message)

logger.error(message)

logger.critical(message)

logger.removeHandler(console_handler)

logger.removeHandler(File_handler)

if __name__ == "__main__":

getlog('i am kira')

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值