多进程log4cxx区分日志

时间:2023-10-02 16:10:38

多进程log4cxx区分日志

(金庆的专栏)

网游客户端一般会多开,多个进程会写同一个日志文件。log4cxx看来会对文件加锁,防止多进程写同一文件写乱,截止目前还没发现错乱的日志。

log4cxx有个MDC(Mapped Diagnostic Context) 功能,可以区分不同进程的日志。

在日志格式中插入帐号名,就可以区分不同帐号的日志。

格式如下,其中%X{Account} 为MDC记录的帐号名。

<param name="ConversionPattern" value="%d %5p %X{Account} %c %x - %m%n"/>

在获取帐号后记录MDC:

log4cxx::MDC::put("Account", sAccount);

日志输出如下: 其中JqAas为帐号:

2014-03-28 16:38:12,012  INFO JqAas Lua  - Create scene.