Django日志配置

在配置文件配置日志

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,  # 是否禁用已经存在的日志模块
    'handlers': {
        'file': {  # 定义日志文件记录
#优先级: DEBUG、INFO、WARNING、ERROR、CRITICAL
            'level': 'DEBUG',  #
            # 'class': 'logging.FileHandler',  # 普通的日志记录类,不实用
            'class': 'logging.handlers.TimedRotatingFileHandler',  # 原本的按时间分割的日志记录类
            'filename': './err.log',  # 定义日志文件目录,logs文件夹没有就创建,err.log自动生成
            'formatter': 'verbose',
            'encoding': 'utf-8'
        },
        'console': {  # 定义终端打印记录
            'level': 'DEBUG',  # 打印所有信息
            'class': 'logging.StreamHandler',
            'formatter': 'verbose',
        },
    },
    'formatters': {
        'verbose': {  # 定义详细的日志信息
            'format': '{levelname} {asctime} {module} {process:d} {thread:d} {message}',
            'style': '{',
        },
    },
    'loggers': {
        'django': {  # 使用django日志,指定使用上述定义的各个配置
            'handlers': ['file', 'console'],  # 同时记录到日志文件和在终端打印
            'level': 'ERROR', #只打印错误日志
            'propagate': True,  # 是否向上传播
            'formatter': 'verbose'
        },
        'app': {  # 新增的 'app' 日志记录器配置
            'handlers': ['file','console'],  # 仅将日志输出到控制台
            'level': 'INFO',  # 设置日志级别为 DEBUG
            'propagate': False,  # 防止日志消息被根记录器或其他记录器重复处理
            'formatter': 'verbose' },
        'root': {
            'handlers': [],  # 默认情况下,根记录器不处理任何日志
            'level': 'WARNING',  # 如果需要,可以调整根记录器的日志级别
    },
    },
}

 

在需要打日志的地方

import logging
logging.config.dictConfig(LOGGING)
# 示例:使用配置的日志记录器
logger = logging.getLogger('app')
logger.info('这是一个info级别的日志')

 

最终实现,手动打日志 和 系统 error 级别报错 进文件 和 在终端展示

 

其中遇到了logging没有config方法的问题参考下面解决(as 给个别名)

https://blog.csdn.net/lichenliang666/article/details/124804626

参考了: https://www.cnblogs.com/banbosuiyue/articles/15030761.html

 

 

后记: 

如何只需要打印出来的日志一直往一个文件打印 ,不按日期生成日志

如果你想要设置Django的日志配置,使得日志文件不会按日期分割(即不使用TimedRotatingFileHandler),而是简单地写入一个固定的文件中,你需要将class的值从'logging.handlers.TimedRotatingFileHandler'更改为'logging.FileHandler'。以下是修改后的LOGGING配置示例:

 

posted @ 2024-08-06 13:01  凯宾斯基  阅读(52)  评论(0编辑  收藏  举报