在多进程使用log4cplus同时向一个日志文件写的时候,官方的FAQ建议使用SoskcetAppender, 即以server client模式来写日志,保证写日志同步。
写了一个小程序,fork出一个server进程,和5个client进程来写日志,当日志大小到达4G的时候做切割。
/*
* =====================================================================================
*
* Filename: multiprocesslog.cpp
*
* Description:
*
* Version: 1.0
* Created: 11/15/2011 02:48:44 PM
* Revision: none
* Compiler: gcc
*
* Author: Xu Zhe Ming,
* Company:
*
* =====================================================================================
*/
#include <log4cplus/fileappender.h>
#include <log4cplus/socketappender.h>
#include <log4cplus/consoleappender.h>
#include <log4cplus/layout.h>
#include <time.h>
#include <log4cplus/configurator.h>
#include <iomanip>
#include <log4cplus/logger.h>
#include <log4cplus/loglevel.h>
#include <log4cplus/helpers/soc

为了解决多进程同时向日志文件写入的问题,采用log4cplus的SocketAppender策略,构建server-client模式确保日志同步。通过编写示例程序,创建一个服务器进程和五个客户端进程,实现当日志文件达到4GB时自动进行切割。
最低0.47元/天 解锁文章
1466

被折叠的 条评论
为什么被折叠?



