相关疑难解决方法(0)

如何使用python的TimedRotatingFileHandler强制旋转名称?

我正在尝试使用TimedRotatingFileHandler将每日日志保存在单独的日志文件中.旋转按预期完美地工作,但我不喜欢它的工作方式是命名文件.

如果我将日志文件设置为my_log_file.log,这将是"今天"的日志文件,当它在午夜更改时,它将被重命名为最后my_log_file.log.2014-07-08没有.log扩展名,并且my_log_file.log将为该文件创建一个新文件.新的一天.

我想得到的是旧文件被重命名my_log_file.2014-07-08.log甚至my_log_file-2014-07-08.log,主要是最后的.log,而不是中间.此外,我希望"今天"的日志文件已经以今天的日期命名,就像旧日期一样.

有没有办法这样做?

我发现我可以用以下内容个性化后缀:

handler.suffix ="%Y-%m-%d"

但我没有办法删除内部.log部分并强制当前日志文件添加后缀.

python logging filehandler

4
推荐指数
2
解决办法
4482
查看次数

如何在同一个配置文件中混合日志处理程序(文件和定时)并压缩日志?

我需要在 json 中准备一个日志配置文件,该文件按时间、大小和压缩 de 文件旋转,为我的应用程序中的所有模块旋转(我现在卡住了)。我想使用一个 json 配置文件来完成它,这是我当前的文件,但是这个配置只按时间轮换:

{
    "version": 1,
    "disable_existing_loggers": false,
    "formatters": {
        "simple": {
            "format": "%(asctime)s - %(name)s - %(levelname)s - %(message)s",
            "datefmt": "%Y-%m-%d %H:%M:%S"
        }
    },

    "handlers": {
        "my_rotate": {
            "level": "DEBUG",
            "class": "logging.handlers.TimedRotatingFileHandler",
            "formatter": "simple",
            "when": "D",
            "interval": 1,
            "backupCount": 5,
            "filename": "/var/log/test.log",
            "encoding": "utf8"
        }
    },

    "loggers": {
        "my_module": {
            "level": "DEBUG",
            "handlers": ["my_rotate"]
        }
    },

    "root": {
        "level": "DEBUG",
        "handlers": ["my_rotate"],
        "propagate": false
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我在处理程序部分(logging.handlers.RotateFileHandler)中添加其他处理程序以按大小旋转结果日志文件重复所有消息。

我的主程序使用以下方法获取记录器属性:

config_json_file = open(os.path.join(os.path.dirname(os.path.realpath(__file__)), "logging.json"))
logging_data = json.load(config_json_file) …
Run Code Online (Sandbox Code Playgroud)

python logging json

4
推荐指数
1
解决办法
2763
查看次数

标签 统计

logging ×2

python ×2

filehandler ×1

json ×1