【发布时间】:2017-08-03 21:30:45
【问题描述】:
我是 logging 和 python 的新手,我找到了一个我想使用的名为 logbook 的库。我正在尝试使用intiliaze 日志文件的某种包装器,然后我可以从不同的文件中调用它。
但我一直低于错误。我做错了什么?
self.stream = io.open(self._filename, mode, encoding=self.encoding)
TypeError: expected str, bytes or os.PathLike object, not NoneType
logger.py
from logbook import Logger, StreamHandler
from logbook import FileHandler
import sys
import os
log = Logger()
initialized = False
def make_log_dir_if_missing(log_dir):
import cheetax.utils.system
cheetax.system.make_directory(log_dir)
def initialize_logger(path=None):
global initialized, log
if initialized:
return
if path is not None:
make_log_dir_if_missing(path)
log_path = os.path.join(path, 'logger.log')
log_handler = FileHandler(path)
log_handler.push_application()
initialized = True
GLOBAL_LOGGER = log
cli.py
def main():
initialize_logger()
其他文件
logger.info(welcome)
【问题讨论】:
-
有什么理由不使用标准 Python
logging库? -
如果你能提供像上面这样的任何最小的解决方案,我会为它打开
-
这是一个写入文件的简单示例。 docs.python.org/2/howto/logging.html#logging-to-a-file