HOME> 历届世界杯决赛> Python中的log文件(详细教程)

Python中的log文件(详细教程)

2026-02-11 12:27:54

1.写在前面2.代码1:在控制台输出log日志3.代码2:在文件中写入log日志4. 代码3:在控制台和文件中分别输出log日志写在前面log日志一般使用是很方便的,一般使用第二种即可。

详细理解建议仔细阅读第三种写法。

log日志的主要作用有以下两点:

1、错误排查与分析

2、log日志分析,便于编程人员快速了解程序。

代码1:在控制台输出log日志代码语言:javascript复制import logging

logging.basicConfig(level=logging.WARNING,

format='%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s')

# 开始使用log功能

logging.info('这是 loggging info message')

logging.debug('这是 loggging debug message')

logging.warning('这是 loggging a warning message')

logging.error('这是 an loggging error message')

logging.critical('这是 loggging critical message')代码2:在文件中写入log日志代码语言:javascript复制import logging

logging.basicConfig(level=logging.WARNING,

filename='./log.txt',

filemode='w',

format='%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s')

# use logging

logging.info('这是 loggging info message')

logging.debug('这是 loggging debug message')

logging.warning('这是 loggging a warning message')

logging.error('这是 an loggging error message')

logging.critical('这是 loggging critical message')当然我们也可以使用sys.stdout()

利用sys.stdout将print行导向到你定义的日志文件中,例如:

代码语言:javascript复制import sys

# make a copy of original stdout route

stdout_backup = sys.stdout

# define the log file that receives your log info

log_file = open("message.log", "w")

# redirect print output to log file

sys.stdout = log_file

print("Now all print info will be written to message.log")

# any command line that you will execute

...

log_file.close()

# restore the output to initial pattern

sys.stdout = stdout_backup

print("Now this will be presented on screen")代码3:在控制台和文件中分别输出log日志代码语言:javascript复制import logging

# 第一步,创建一个logger

logger = logging.getLogger()

logger.setLevel(logging.INFO) # Log等级总开关 此时是INFO

# 第二步,创建一个handler,用于写入日志文件

logfile = './log.txt'

fh = logging.FileHandler(logfile, mode='a') # open的打开模式这里可以进行参考

fh.setLevel(logging.DEBUG) # 输出到file的log等级的开关

# 第三步,再创建一个handler,用于输出到控制台

ch = logging.StreamHandler()

ch.setLevel(logging.WARNING) # 输出到console的log等级的开关

# 第四步,定义handler的输出格式(时间,文件,行数,错误级别,错误提示)

formatter = logging.Formatter("%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s")

fh.setFormatter(formatter)

ch.setFormatter(formatter)

# 第五步,将logger添加到handler里面

logger.addHandler(fh)

logger.addHandler(ch)

# 日志级别

logger.debug('这是 logger debug message')

logger.info('这是 logger info message')

logger.warning('这是 logger warning message')

logger.error('这是 logger error message')

logger.critical('这是 logger critical message')

#

# DEBUG:详细的信息,通常只出现在诊断问题上

# INFO:确认一切按预期运行

# WARNING(默认):一个迹象表明,一些意想不到的事情发生了,或表明一些问题在不久的将来(例如。磁盘空间低”)。这个软件还能按预期工作。

# ERROR:更严重的问题,软件没能执行一些功能

# CRITICAL:一个严重的错误,这表明程序本身可能无法继续运行声明:文章主要参考https://blog.csdn.net/rusi__/article/details/100122350和https://www.cnblogs.com/arkenstone/p/5727883.html,在原博文的基础上添加导航目录,旨在帮助大家以更高效的方式完成开发工作。

发布者:全栈程序员栈长,转转请注明出处:https://javaforall.cn/2134.html原文链接:

口袋妖怪化石盔怎么进化
桨板运动火了,安全问题谁来关心?别让溺水悲剧一再重演