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