python logging 二次封装 filename 不正确
时间: 2023-12-13 20:05:42 浏览: 120
好的,我理解了你的问题。你的意思是你进行了 logging 的二次封装,但是在使用 `filename` 时发现输出的文件名不正确,对吗?
如果是这样,可能是因为 `filename` 参数的默认值是 `__file__`,在被解释器执行时就已经确定,而不是在运行时确定的。所以,如果你的二次封装是在一个模块中定义的,那么 `filename` 参数的值将会是该模块的文件名,而不是你想要的被日志记录的文件名。
解决这个问题的方法是,你可以在调用 logging 函数时,手动传递一个文件名参数,作为日志记录的文件名,而不是使用默认的 `filename` 参数。例如:
```python
import logging
def custom_logger(filename):
logger = logging.getLogger(filename)
logger.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
file_handler = logging.FileHandler(filename + '.log')
file_handler.setLevel(logging.DEBUG)
file_handler.setFormatter(formatter)
logger.addHandler(file_handler)
return logger
logger = custom_logger('my_module')
logger.debug('This is a debug message')
```
这样,你就可以在调用 logging 函数时,指定要记录日志的文件名了。
希望这能帮助到你!
阅读全文