转载请注明来源-作者@loongshawn:http://blog.csdn.net/loongshawn/article/details/53540252,建议读者阅读原文,确保获得完整的信息
1 应用场景
公司开发了一个JavaFX的桌面应用客户端,由于某项功能比较耗时,同时可以打开多个客户端(客户端所在机器性能强劲),通常客户端的日志都会输出到指定路径文件,这样多客户端同时打开,日志也会输入到同一个文件,这样就没法区分哪些日志是哪个客户端产生的。
通常有两种方法来解决这个问题:
- 1、不同客户端日志写入不同文件;
- 2、不同客户端日志写入同一文件,给日志添加客户端前缀标识。
当然,本实例中利用方法二,将日志保存至同一文件,不设太多分支。可能不同的场景要求不同,本方法仅供参考。
2 设计思路
首先,需要明确以下几点:
- 1、log4j仅在程序启动时初始化一次。
- 2、Client_ID(客户端ID)的生命周期为:启动软件——>关闭软件。因此是动态变化的。
- 3、在客户端中标明该客户端所属ID,若有查阅日志需要,便于定位日志。
在明确上面两点后,需要做的就是:
- 1、程序启动时初始化Client_ID,并将其添加为一个系统属性,并在客户端显示这个ID;
- 2、把这个Cli