【问题标题】:Python logging basicConfig to file and bashPython将basicConfig记录到文件和bash
【发布时间】:2018-05-17 18:38:26
【问题描述】:

如何设置基本日志记录以写入日志文件并将输出打印到终端?

我使用 basicConfig 为模块和子模块设置日志记录。

问题: 如果我使用 logging.basicConfig(filename=LOGFILE, ...) 日志模块将不再有终端输出。 如果我为日志文件添加另一个 FileHandler,这仅由主模块使用,而不是由子模块使用,例如:

if __name__ == "__main__":
    logging.basicConfig(
        level=logging.DEBUG,
        format="%(name)s (%(lineno)s): %(message)s",
        filename=LOGFILE
        )
    # add logfile   
    formatter = logging.Formatter("%(name)s (%(lineno)s): %(message)s")
    logfile = logging.FileHandler(LOGFILE)
    logfile.setLevel("DEBUG")
    logfile.setFormatter(formatter)

使用 Python 2.7

更新

刚刚找到https://stackoverflow.com/a/13733863/1907997,但示例不起作用,终端或文件上没有输出:

if __name__ == "__main__":
    logFormatter = "%(name)s (%(lineno)s): %(message)s"
    rootLogger = logging.getLogger()

    fileHandler = logging.FileHandler(LOGFILE)
    fileHandler.setFormatter(logFormatter)
    fileHandler.setLevel("DEBUG")

    rootLogger.addHandler(fileHandler)

    consoleHandler = logging.StreamHandler()
    consoleHandler.setFormatter(logFormatter)
    consoleHandler.setLevel("DEBUG")

    rootLogger.addHandler(consoleHandler)

较新 Python 版本的信息:

。 由于 Python 3.3 logging.basicConfig() 可以采用关键字参数处理程序 https://stackoverflow.com/a/46098711/1907997

【问题讨论】:

    标签: python logging


    【解决方案1】:

    刚刚找到解决办法:

    logging.basicConfig(
        level=logging.DEBUG,
        format="%(asctime)s - %(name)s (%(lineno)s) - %(levelname)s: %(message)s",
        datefmt='%Y.%m.%d %H:%M:%S', 
        filename=LOGFILE
        )
    
    rootLogger = logging.getLogger("")
    logFormatter = logging.Formatter("%(asctime)s - %(name)s (%(lineno)s) - %(levelname)s: %(message)s")
    consoleHandler = logging.StreamHandler()
    consoleHandler.setFormatter(logFormatter)
    consoleHandler.setLevel("DEBUG")
    rootLogger.addHandler(consoleHandler)
    

    在这里找到:https://stackoverflow.com/a/23681578/1907997

    【讨论】:

      猜你喜欢
      • 2012-11-08
      • 2015-08-31
      • 2013-06-09
      • 2012-08-22
      • 2011-07-31
      • 1970-01-01
      • 2015-07-11
      • 2021-01-22
      • 2019-04-24
      相关资源
      最近更新 更多