Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。
Django使用python自带的 logging 作为日志打印工具。logging 是线程安全,其主要由4部分组成:
控制日志的格式
控制哪些日志可以从 logger 流向 Handler
控制日志输出到哪里,console,file…
一个 logger 可以有多个Handler
用户使用的直接接口,将日志传递给Handler
一、settings.py 配置
设置 log 文件,如果不存在就新建 log 文件夹
LOG_DIR = os.path.join(BASE_DIR, "log")
if not os.path.exists(LOG_DIR):
os.makedirs(LOG_DIR)
LOGGING = {
# version为 1 ,定义了配置文件的版本,当前版本号为1.0
"version": 1.0,
# 日志格式 % s 字符串,格式器
"formatters": {
# 详细的日志格式
"standard": {
"format": "%(asctime)s [%(threadName)s: %(thread)d]"
"%(pathname)s:%(funcName)s:%(lineno)d %(levelname)s - %(message)s"
},
# 简单的日志格式
"simple": {
"format": "%(asctime)s %(message)s"
}
},
"filters": {
# 配置过滤器的名字
"test": {
"()": "ops.TestFilter",
}
},
# 格式器
"handlers": {
# 终端处理器
"console_handler": {
"level": "INFO",
"class": "logging.StreamHandler",
"formatter": "standard"
},
# 文件处理器 RotatingFileHandler 循环文件处理器
"file_handler": {
"level": "DEBUG",
"class": "logging.handlers.RotatingFileHandler",
# 指定路径的名字
"filename": os.path.join(LOG_DIR, "backend.log"),
"maxBytes": 1024*1024*1024,
# 保存的备份数量
"backupCount": 5,
"formatter": "standard",
"encoding": "utf8"
},
# 统计,产生文件
"statistics_handler": {
"level": "DEBUG",
"class": "logging.handlers.RotatingFileHandler",
# 指定路径的名字
"filename": os.path.join(LOG_DIR, "statistics.log"),
"maxBytes": 1024*1024*5,
# 保存的备份数量
"backupCount": 5,
"formatter": "simple",
"encoding": "utf8"
}
},
"loggers": {
# 日志的名字
"django": {
"handlers": ["console_handler", "file_handler"],
"filters": ['test'],
"level": "DEBUG"
},
"statistics": {
"handlers": ["statistics_handler"],
"level": "DEBUG"
}
}
}