用于记录器输出的Python全局通用路径

时间:2016-03-02 18:32:08

标签: python logging

我正在处理使用logger的路径问题。好吧,我已经创建了一个位于文件logger.py中的记录器类,我想要做的就是在我的项目中使用记录器。结构如下:

project/
  /docs
  /log
  /dir1
    /dir2
      __init__.py
      a.py
      ...
    __init__.py
    b.py
    logger.py
    ...
  setup.py  

好吧,问题是当我想在文件a.pyb.py中使用记录器时。我无法正确设置记录器输出路径。我发现相对路径的使用不是正确的方法。如何强制记录器将日志文件a.logb.log放入/log文件夹?在logger.py文件中,我正在使用logging.FileHandler()。提前谢谢。

更新 logger.py

class Logger:

   LEVEL = logging.DEBUG

   def __init__(self, name, logger_path, level=None):

       self.logger = logging.getLogger(name)

       formatter = logging.Formatter('%(asctime)s - %(name)s.%(lineno)d - [%(levelname)s] - %(message)s')
       file_handler = logging.FileHandler("{0}/{1}.log".format(logger_path, name))
       file_handler.setFormatter(formatter)

       self.logger.addHandler(file_handler)

       if level:
           self.logger.setLevel(level)
       else:
           self.logger.setLevel(self.LEVEL)

我从a.py传递了相对路径,当我从目录/dir2运行脚本时,它工作正常。但它在项目的其他地方不起作用......

0 个答案:

没有答案