在各种操作系统中保存日志时的最佳做法是什么?

时间:2017-07-26 12:02:06

标签: python linux windows python-3.x logging

所以我在python中创建一个脚本并希望它将日志保存到文件中。我正在使用标准日志记录模块。目前日志保存在脚本的文件夹中,但我不认为这是正确的方法。

我的下一步是让我的脚本可以从PyPI安装,因此问题。什么是在所有主要操作系统(Mac,链接,窗口)中保存脚本日志的最佳位置

1 个答案:

答案 0 :(得分:0)

只需为标准日志记录模块指定正确的设置,即可将所有日志保存到/日志或机器的任何路径。

所以,基本上你可以定义'处理程序'来说明将日志放在何处以及将使用这些处理程序写入日志的“记录程序”。

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'formatters': {
        'verbose': {
            'format' : "[%(asctime)s] %(levelname)s [%(name)s:%(lineno)s] %(message)s",
            'datefmt' : "%d/%b/%Y %H:%M:%S"
        },
        'simple': {
            'format': '%(levelname)s %(message)s'
        },
    },
    'handlers': {
        'file1': {
            'level': 'DEBUG',
            'class': 'logging.FileHandler',
            'filename': '/logs/file1.log',
            'formatter': 'verbose'
        },
        'file2': {
            'level': 'DEBUG',
            'class': 'logging.FileHandler',
            'filename': '/logs/file2.log',
            'formatter': 'verbose'
        },
    },
    'loggers': {
        'django': {
            'handlers':['file1'],
            'propagate': True,
            'level':'DEBUG',
        },
        'logger1': {
            'handlers': ['file1'],
            'level': 'DEBUG',
        },
        'logger2': {
            'handlers': ['file2'],
            'level': 'DEBUG',
        },

          'django.request': {
             'handlers': [file1, file2],
             'level': 'ERROR',
             'propagate': False,
        },
    }
}

现在,您可以在脚本中使用这些记录器,如下所示:

import logging
info_logger = logging.getLogger(logger1)
error_logger = logging.getLogger(logger2)