python日志输出

  1. python日志输出
    1. 初始化代码
    2. 使用
    3. 完整例程

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

文章标题:python日志输出

文章字数:875

本文作者:宏沉一笑

发布时间:2024-04-07, 22:03:05

最后更新:2024-04-07, 22:10:19

原始链接:https://whghcyx.gitee.io/2024/04/07/IT-2024-04-07-python%E6%97%A5%E5%BF%97%E8%BE%93%E5%87%BA/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏