python日志输出
创建时间:
字数:875
阅读:
python日志输出
初始化代码
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
| def setlogger(logfilename="log.txt", fileflag=False, level=10, name="--->"): '''python自带的日志打印模块初始化''' import logging,colorlog # 打印信息格式 # LOG_FORMAT = "%(asctime)s_%(levelname)s_%(module)s_%(funcName)s_%(lineno)d_%(name)s%(message)s" LOG_FORMAT = "{asctime}_{levelname:_^8}_{module}_{funcName}_{lineno:_^3}_{name}{message}" LOG_CONSOLE = "{log_color}" + LOG_FORMAT DATE_FORMAT = "%Y-%d-%m %H:%M:%S" # 时间格式 # 日志等级 DEBUG INFO WARNING ERROR CRITICAL # logging.basicConfig(level=logging.DEBUG, format=LOG_FORMAT, datefmt=DATE_FORMAT) log = logging.getLogger(name) # 避免重复打印日志 log.handlers = [] log.setLevel(level) color_config = { 'DEBUG': 'cyan', 'INFO': 'green', 'WARNING': 'yellow', 'ERROR': 'red', 'CRITICAL': 'purple', } # 输出到控制台 console_handler = logging.StreamHandler() console_formatter = colorlog.ColoredFormatter(fmt=LOG_CONSOLE, log_colors=color_config, datefmt=DATE_FORMAT, style='{') console_handler.setFormatter(console_formatter) # logger添加处理器 log.addHandler(console_handler) if fileflag: # 输出到文件 file_handler = logging.FileHandler(filename=logfilename, mode='a', encoding='utf-8') file_handler.setFormatter(LOG_FORMAT, datefmt=DATE_FORMAT, style='{') file_handler.setLevel(logging.ERROR) # 只有error和critical级别才会写入日志文件 log.addHandler(file_handler) return log # 返回日志器
log = setlogger(name="yolov5 ---> ") # 初始化日志输出
|
使用
1 2 3 4 5 6 7 8
| # f字符串 log.debug(f'{"aa"} {"4543"}\n') # %字符串 log.info("%s %s" % ("12", "bb")) # format字符串 log.warning("{} {}".format("hello", "world")) log.error("Welcome to run wlib!!!") log.fatal("Welcome to run wlib!!!")
|
完整例程
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
| #!/usr/bin/env python3 # -*- coding: utf-8 -*- ###----------1、文件说明----------### ''' * 说明:python程序模板 * 时间: * 文件: * 作者:Smile * 版本:0.1 * 备注: ''' ###----------2、库导入----------### ###----------3、参数配置----------### ###----------4、主体程序----------### def setlogger(logfilename="log.txt", fileflag=False, level=10, name="--->"): '''python自带的日志打印模块初始化''' import logging,colorlog # 打印信息格式 # LOG_FORMAT = "%(asctime)s_%(levelname)s_%(module)s_%(funcName)s_%(lineno)d_%(name)s%(message)s" LOG_FORMAT = "{asctime}_{levelname:_^8}_{module}_{funcName}_{lineno:_^3}_{name}{message}" LOG_CONSOLE = "{log_color}" + LOG_FORMAT DATE_FORMAT = "%Y-%d-%m %H:%M:%S" # 时间格式 # 日志等级 DEBUG INFO WARNING ERROR CRITICAL # logging.basicConfig(level=logging.DEBUG, format=LOG_FORMAT, datefmt=DATE_FORMAT) log = logging.getLogger(name) # 避免重复打印日志 log.handlers = [] log.setLevel(level) color_config = { 'DEBUG': 'cyan', 'INFO': 'green', 'WARNING': 'yellow', 'ERROR': 'red', 'CRITICAL': 'purple', } # 输出到控制台 console_handler = logging.StreamHandler() console_formatter = colorlog.ColoredFormatter(fmt=LOG_CONSOLE, log_colors=color_config, datefmt=DATE_FORMAT, style='{') console_handler.setFormatter(console_formatter) # logger添加处理器 log.addHandler(console_handler) if fileflag: # 输出到文件 file_handler = logging.FileHandler(filename=logfilename, mode='a', encoding='utf-8') file_handler.setFormatter(LOG_FORMAT, datefmt=DATE_FORMAT, style='{') file_handler.setLevel(logging.ERROR) # 只有error和critical级别才会写入日志文件 log.addHandler(file_handler) return log # 返回日志器 log = setlogger(name="yolov5 ---> ") # 初始化日志输出 def demo(): log.debug(f'{"aa"} {"4543"}\n') log.info("%s %s" % ("12", "bb")) log.warning("{} {}".format("hello", "world")) log.error("Welcome to run wlib!!!") log.fatal("Welcome to run wlib!!!") if __name__ == '__main__': demo()
|
微信:宏沉一笑
|
公众号:登山客
|
签名:Smile every day
名字:宏沉一笑
邮箱:whghcyx@outlook.com
个人网站:https://whg555.github.io
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 whghcyx@outlook.com