mod_python django 日志问题

1 投票
1 回答
577 浏览
提问于 2025-04-15 15:31

我在settings.py文件中使用了以下的日志设置:


logging.basicConfig(level=LOG_LEVEL, format=LOG_FORMAT);

handler = logging.handlers.RotatingFileHandler( LOG_FILE_PATH, 'a', LOG_FILE_SIZE,LOG_FILE_NUM );

formatter = logging.Formatter ( LOG_FORMAT );

handler.setFormatter(formatter);

logging.getLogger().addHandler(handler)


我还在apache2中使用了mod_python。

现在遇到的问题是:当日志轮换时,我会同时生成很多日志文件。比如,我在apache中设置了5个工作进程,日志轮换时就会出现log.1、log.2……log.5这些文件。

有没有什么建议呢?

1 个回答

2

RotatingFileHandler 这个工具并不适合在多进程的系统中使用。你会发现每个进程都觉得文件太大了,于是就开始创建新的日志文件,这样你可能会得到多达5个新的日志文件。要正确实现这个功能并不简单:你需要在创建新文件之前先获得进程间的锁,并且要通知每个进程去重新打开文件。最好的办法是使用操作系统提供的外部日志轮换功能,或者设置一个单进程的日志服务器。

撰写回答