logging问题
1. 下面这段代码,脚本多次使用init_log(path)写入日志,init_log的mode='w'。实际在写入的时候path文件是追加而不是覆写,不知道是什么原因呢?
2. win环境下如何指定path文件的编码格式是'utf-8'?
# coding:utf-8
"""
这段代码是Python的日志模块的使用示例。首先定义了一个init_log函数,用于初始化日志记录器并将日志写入指定的文件中。
其中,level参数指定了日志级别,format参数指定了日志输出的格式,filename参数指定了日志文件名,filemode参数指定了日志文件打开模式。
在主程序中,调用了init_log函数来初始化日志记录器,并指定了日志文件的路径和打开模式。
然后分别使用info、warning、error和debug等方法记录不同级别的日志信息。
需要注意的是,如果指定的日志文件不存在,则会自动创建一个新的日志文件;如果指定的日志文件已经存在,则会以追加模式打开该文件。
"""
import logging
import os
def init_log(path):
# if os.path.exists(path):
# mode = 'a'
# else:
# mode = 'w'
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s %(filename)s %(lineno)d %(levelname)s %(message)s',
filename=path,
filemode='w'
)
return logging
current_path = os.getcwd()
path = os.path.join(current_path, 'back.log')
log = init_log(path)
log.info('这是第一个记录的日志信息')
log.warning('这是一个警告')
log.error('这是一个重大的错误信息')
log.debug('这是一个debug')12
收起
正在回答 回答被采纳积分+1
1回答
Mr朱_
2023-05-21 10:44:46
只要加encoding='utf-8'执行就没问题了
但是pycharm有意外实参的警告,不知道什么原因,这个警告能通过代码消除吗?
import logging
import os
def init_log(path):
if os.path.exists(path):
mode = 'a'
else:
mode = 'w'
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s %(message)s %(filename)s %(levelname)s %(lineno)d',
filename=path,
filemode=mode,
encoding='utf-8'
)
return logging
log = init_log(os.path.join(os.getcwd(), 'back.log'))
log.info('这是第一个记录的日志信息')
log.warning('这是一个警告')
log.error('这是一个错误')
log.debug('这是 一个debug')
Python全能工程师
- 参与学习 人
- 提交作业 16427 份
- 解答问题 4469 个
全新版本覆盖5大热门就业方向:Web全栈、爬虫、数据分析、软件测试、人工智能,零基础进击Python全能型工程师,从大厂挑人到我挑大厂,诱人薪资在前方!
了解课程




恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星