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

Python 在各种操作系统中保存日志的最佳做法是什么?,python,linux,windows,python-3.x,logging,Python,Linux,Windows,Python 3.x,Logging,因此,我正在用python编写一个脚本,并希望它将日志保存到一个文件中。我正在使用标准的日志模块。目前日志保存在脚本文件夹中,但我认为这不是正确的方法 我的下一步是使我的脚本可以从PyPI安装,这就是问题所在。在所有主要操作系统(Mac、link、windows)中保存脚本日志的最佳位置是哪里?您只需为标准日志模块指定正确的设置,即可将所有日志保存到/日志或机器的任何路径 因此,基本上您可以定义“处理程序”,它表示将日志放在哪里,以及将使用这些处理程序编写日志的“记录器” LOGGING = {

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


我的下一步是使我的脚本可以从PyPI安装,这就是问题所在。在所有主要操作系统(Mac、link、windows)中保存脚本日志的最佳位置是哪里?

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

因此,基本上您可以定义“处理程序”,它表示将日志放在哪里,以及将使用这些处理程序编写日志的“记录器”

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)

谁应该读日志?如果用户想自己调试,或者如果有问题(当然,如果用户提供了),那么用户应该读日志。通常的做法是为包管理的应用程序在/var/log中安装日志文件,或者为本地编译的应用程序在/usr/local//log中安装日志文件是的,我知道,我只想知道“标准”保存日志的路径\方法。我想将日志放到根目录下已经足够公平了。如果这些日志被一些外部用户使用,那么您可以编写自定义脚本将这些日志推送到Cloudwatch、KIbana或任何此类服务,以便更好地分类,索引和可读性。永远不要把文件放在文件系统的根目录中。任何基于*NIX的系统中的目录结构都是以某种方式构造的,这是有原因的。