日志文件无内容写入问题排查:自定义Python日志函数异常
日志写入失败的问题排查与修复
1. 补全缺失的模块导入
你的代码里用到了logging和time模块,但没有导入,直接运行会报错终止,根本执行不到写入日志的步骤。必须在代码开头添加:
import logging import time
2. 解决未定义的变量/函数报错
代码里的getWorkingFile()函数和FILENAME变量没有定义,执行到对应行时会抛出NameError导致脚本中断,日志自然无法写入。你可以:
- 自己实现
getWorkingFile()函数,比如返回当前脚本的文件名 - 将这部分内容替换成实际存在的值,或者先删掉该行测试基础日志功能
3. 处理日志缓冲问题(可选)
如果前面的修复完成后仍无日志内容,可能是日志模块的缓冲机制导致内容未即时写入文件。可以在basicConfig中添加flush=True参数强制刷新:
logging.basicConfig(filename=LOG_FILE, level=logging.INFO, flush=True)
修复后的可运行测试代码
import logging import time LOG_FILE='log.txt' logging.basicConfig(filename=LOG_FILE, level=logging.INFO, flush=True) # 示例实现getWorkingFile函数 def getWorkingFile(): import os return os.path.basename(__file__) # 替换成你实际的目标文件名 FILENAME = "example.txt" def createLoggingInfo(message:str): timestamp = time.ctime() log_message = f'{timestamp} {message}' logging.info(log_message) logging.info(f'\n\nWriting from {getWorkingFile()} to {FILENAME} was successful') createLoggingInfo('i am writing something')
额外检查点
- 确认脚本拥有当前目录的写入权限,避免因权限问题无法生成日志文件
- 检查是否有其他代码修改了logging配置,覆盖了
basicConfig的设置
内容的提问来源于stack exchange,提问作者kushywushy
相关产品推荐
相关产品推荐

