os.mkdir(log_path)# 存放log的文件名log_filename = os.path.join(log_path, log_filename)# 创建一个loggerlogger = logging.getLogger(logger_name)# 设置日志等级logger.setLevel(level)# 创建一个滚动日志处理器crfh = ConcurrentRotatingFile
常用的有TimedRotatingFileHandler根据时间轮转 RotatingFileHandler根据文件大小轮转 但是内置的这些handler是多线程安全的,而不支持多进程(可以修改源码加锁保证进程安全) 多进程的时候可以使用ConcurrentLogHandler(需要自行安装)按照文件大小轮转 pip install ConcurrentLogHandler...
Django Example # settings.py LOGGING={ #... 'handlers':{ 'custom_mpf_rotate':{ 'level': 'DEBUG', 'class': 'mpfhandler.MultProcTimedRotatingFileHandler', 'filename': os.path.join(BASE_DIR, 'logs/custom_mptf.log'), 'when' : 'D', # day, or H for hour #'interval' : 1, # ...
这是由于django开发模式时会同时启动两个进程加载settings.py,导致日志文件占用后无法重命名或者删除 都知道django开发模式下如果有文件变动会自动重新启动,所以同时又两个进程,一个是程序正常运行的进程,另一个是用来监听变更并重启服务的进程,他们都会加载一遍settings.py,可以在settings.py中加print然后启动会看到控制...
python实现多进程日志轮转ConcurrentLogHandler python实现多进程⽇志轮转ConcurrentLogHandler 记录⽇志是我们程序中必不可少的⼀个功能,但是⽇志⽂件如果没有合理的管理,时间长了⼏百兆的⽇志⽂件就很难分析了(都不想打开看),但是⼜不可能经常⼿动去管理它 ⽇志轮转:根据时间或者⽂件⼤...