多進程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.
Powered by: C++博客 Copyright © 金慶