【问题标题】:Django creates log file but doesn't write into itDjango 创建日志文件但不写入
【发布时间】:2017-06-16 07:08:57
【问题描述】:

我正在尝试通过提供以下设置来使用 Django 记录器:

LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'filters': {
    'require_debug_false': {
        '()': 'django.utils.log.RequireDebugFalse',
    },
    'require_debug_true': {
        '()': 'django.utils.log.RequireDebugTrue',
    },
},
'formatters': {
    'simple': {
        'format': '[%(asctime)s] %(levelname)s %(message)s',
        'datefmt': '%Y-%m-%d %H:%M:%S'
    },
},
'handlers': {
    'logfile': {
        'level': 'INFO',
        'filters': ['require_debug_false','require_debug_true'],
        'class': 'logging.FileHandler',
        'filename': '/tmp/django-log.log',
        'formatter': 'simple'
    },
},
'loggers': {
    'user_activity': {
        'handlers': ['logfile',]
    },
}

}

然后在视图中使用它,如下所示:

user_logger = logging.getLogger('user_activity')
...
user_logger.info("opened page")

虽然 Django 创建文件 django-log.log,但它不会写入文件。 我的设置有问题吗?

谢谢

【问题讨论】:

  • 你在文件夹中有写权限吗?如果您使用的是 ubuntu,请尝试使用 sudo 运行
  • 不,这与权限无关。我检查了所有权限

标签: django logging


【解决方案1】:

在处理程序过滤器中,您可以使用django.utils.log.RequireDebugFalsedjango.utils.log.RequireDebugTrue,不能同时使用两者。它们是相互排斥的。

【讨论】:

    【解决方案2】:

    您需要在使用logging.getLogger(name) 创建日志对象时设置日志记录级别:

    在写入记录器之前试试这个:

    user_logger.setLevel(logging.INFO)
    

    【讨论】:

      猜你喜欢
      • 2018-06-28
      • 2012-11-03
      • 2014-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-10
      • 2017-01-17
      • 1970-01-01
      相关资源
      最近更新 更多