Django日志默认是保存在内存中的,如果需要保存到文件中,则需要进行配置。保存时间的设置可以通过日志处理器(handler)来实现。
具体步骤如下:
在settings.py中添加日志配置:
LOGGING = {'version': 1,'disable_existing_loggers': False,'handlers': {'file': {'level': 'DEBUG','class': 'logging.FileHandler','filename': '/path/to/file.log', # 日志文件路径'formatter': 'verbose','when': 'midnight', # 设置保存时间为每天零点'backupCount': 7, # 保留7天的日志文件},},'loggers': {'django': {'handlers': ['file'],'level': 'DEBUG','propagate': True,},},
}
在视图函数或其他代码中添加日志记录:
import logginglogger = logging.getLogger(__name__)def my_view(request):logger.debug('This is a debug message')logger.info('This is an info message')logger.warning('This is a warning message')logger.error('This is an error message')logger.critical('This is a critical message')
这样,当视图函数被调用时,日志信息将被记录到指定的日志文件中,并且每天零点会自动创建新的日志文件,同时保留7天的历史日志文件。
logging还有一个formatters属性,用于指定日志格式。可以在LOGGING配置中添加formatters属性,例如:
LOGGING = {'version': 1,'disable_existing_loggers': False,'handlers': {'file': {'level': 'DEBUG','class': 'logging.FileHandler','filename': '/path/to/file.log','formatter': 'verbose', # 指定日志格式'when': 'midnight','backupCount': 7,},},'loggers': {'django': {'handlers': ['file'],'level': 'DEBUG','propagate': True,},},'formatters': {'verbose': {'format': '%(asctime)s %(levelname)s %(module)s %(process)d %(thread)d %(message)s'},},
}
在上面的配置中,我们指定了formatter为verbose,并在formatters中定义了verbose格式的具体内容。%(asctime)s表示记录时间,%(levelname)s表示日志级别,%(module)s表示模块名,%(process)d表示进程ID,%(thread)d表示线程ID,%(message)s表示日志信息。
在视图函数或其他代码中,我们可以使用logger.debug()、logger.info()等方法记录日志,日志信息将按照指定的格式记录到日志文件中。