java从相同jarfile的多个实例记录到一个数据库,但使用log4j2跟踪哪个实例记录了什么
我有三个SpringBootJAR实例,它们都需要使用log4j2
登录到一个mysql数据库。那些罐子一模一样。每个jar在启动时加载一个外部配置文件,以便为三个实例中的每个实例获取不同的服务名称
现在,我希望能够以某种方式分离数据库中不同实例的日志条目。到目前为止,我确实尝试:
- 根据外部配置文件登录到不同的表
似乎我需要绕过log4japi,直接使用log4j核心功能。危险李> - 记录到一个表,但有一列分隔它们
如何跨线程和所有使用的外部包执行此操作?我查看了标记,但似乎我必须进入每一条线并设置标记。它感觉不是进入每个依赖项并将其添加到代码中的正确方法李>
对我来说,到目前为止还没有任何结果。我遗漏了什么/有什么想法吗
# 1 楼答案
对于方法1。(不同的表)我得到了以下解决方案(几乎)运行
最终在手册中找到了正确的部分: Log4j2 Manual - Programmatically Modifying the Current Configuration after Initialization
当我完成数据库appender的编程配置时,将表名更改为log为
serverConfig.getName()
。我们注意到单一数据库可能不是我们的最佳方法。但我想分享我得到的代码。可悲的是,我无法投入更多的时间,因此这仍然未经测试:/