Django日志功能

Posted TasteL

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django日志功能相关的知识,希望对你有一定的参考价值。

在setting.py下:

  1 python
  2 BK_LOG_DIR = os.environ.get(BK_LOG_DIR, /data/paas/apps/logs/)
  3 LOGGING_DIR = os.path.join(BASE_DIR, logs, APP_ID)
  4 LOG_CLASS = logging.handlers.RotatingFileHandler
  5 LOG_LEVEL = ERROR
  6 if RUN_MODE == DEVELOP:
  7 LOG_LEVEL = DEBUG
  8 elif RUN_MODE == TEST:
  9 LOGGING_DIR = os.path.join(BK_LOG_DIR, APP_ID)
 10 LOG_LEVEL = INFO
 11 elif RUN_MODE == PRODUCT:
 12 LOGGING_DIR = os.path.join(BK_LOG_DIR, APP_ID)
 13 LOG_LEVEL = ERROR
 14 
 15 # 自动建立日志目录
 16 if not os.path.exists(LOGGING_DIR):
 17 try:
 18 os.makedirs(LOGGING_DIR)
 19 except:
 20 pass
 21 
 22 LOGGING = {
 23 #第一个参数,一般都为1
 24 version: 1,
 25 #第二个参数,False
 26 disable_existing_loggers: False,
 27 #第三个 日志格式
 28 formatters: {
 29 #一种格式,自定义,下同
 30 verbose: {
 31 format: %(levelname)s [%(asctime)s] %(pathname)s %(lineno)d %(funcName)s %(process)d %(thread)d \n \t %(message)s \n,
 32 datefmt: %Y-%m-%d %H:%M:%S
 33 },
 34 #同上
 35 simple: {
 36 format: %(levelname)s %(message)s \n
 37 },
 38 },
 39 #第四个参数,日志控制器
 40 handlers: {
 41 #一种日志控制器,下同
 42 null: {
 43 level: DEBUG,
 44 class: django.utils.log.NullHandler,
 45 },
 46 #同上
 47 mail_admins: {
 48 level: ERROR,
 49 class: django.utils.log.AdminEmailHandler
 50 },
 51 #~~
 52 console: {
 53 level: DEBUG,
 54 class: logging.StreamHandler,
 55 formatter: simple
 56 },
 57 #~~
 58 root: {
 59 class: LOG_CLASS,
 60 formatter: verbose,
 61 filename: os.path.join(LOGGING_DIR, %s.log % APP_ID),
 62 maxBytes: 1024 * 1024 * 10,
 63 backupCount: 5
 64 },
 65 component: {
 66 class: LOG_CLASS,
 67 formatter: verbose,
 68 filename: os.path.join(LOGGING_DIR, component.log),
 69 maxBytes: 1024 * 1024 * 10,
 70 backupCount: 5
 71 },
 72 wb_mysql: {
 73 class: LOG_CLASS,
 74 formatter: verbose,
 75 filename: os.path.join(LOGGING_DIR, wb_mysql.log),
 76 maxBytes: 1024 * 1024 * 4,
 77 backupCount: 5
 78 },
 79 },
 80 #第五个参数
 81 loggers: {
 82 #使用时需要用到的名字
 83 django: {
 84 handlers: [null],
 85 level: INFO,
 86 propagate: True,
 87 },
 88 #~~
 89 django.request: {
 90 handlers: [console],
 91 level: ERROR,
 92 propagate: True,
 93 },
 94 # the root logger ,用于整个project的logger
 95 #~~
 96 root: {
 97 handlers: [root],
 98 level: LOG_LEVEL,
 99 propagate: True,
100 },
101 # 组件调用日志
102 component: {
103 handlers: [component],
104 level: WARN,
105 propagate: True,
106 },
107 # other loggers...
108 django.db.backends: {
109 handlers: [wb_mysql],
110 level: DEBUG,
111 propagate: True,
112 },
113 }
114 }

使用:

test.py下

import logging

logger = logging.getLogger("django")
#几种种模式,记录不同等级的日志
#最后一种用于try,except报错记录日志
logger.debug("test")
logger.info("test")
logger.warning("test")
logger.error("wrong1")
logger.exception("wrong2")

 

以上是关于Django日志功能的主要内容,如果未能解决你的问题,请参考以下文章

Django日志配置代码

如何在 Django Summernote 中显示编程片段的代码块?

常用python日期日志获取内容循环的代码片段

Django日志功能

django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE的解决办法(转)(代码片段

django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE的解决办法(转)(代码片段