【问题标题】:Create a logbook wrapper创建日志包装器
【发布时间】: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 logbook


【解决方案1】:

问题在于您没有提供默认的日志记录目录,因此当您不向initialize_logger() 传递任何内容时,log_handler = FileHandler(path) 行将失败。只需将 and else 添加到将path 设置为某个位置的if path is None 语句:)


更好的是,只需将path=None 更改为path='/path/to/default.log' 或其他东西。

【讨论】:

    猜你喜欢
    • 2021-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-06
    • 2014-04-13
    • 2015-03-11
    • 1970-01-01
    相关资源
    最近更新 更多