Java 如何使用EclipseLink登录每个线程的单独文件
场景:使用EclipseLink JPA实现与关系数据库交互的多线程应用程序 所需的:让每个线程将SQL活动记录到不同的文件中 声明可以使用以下属性指定持久性单元应记录到的文件:Java 如何使用EclipseLink登录每个线程的单独文件,java,multithreading,logging,eclipselink,Java,Multithreading,Logging,Eclipselink,场景:使用EclipseLink JPA实现与关系数据库交互的多线程应用程序 所需的:让每个线程将SQL活动记录到不同的文件中 声明可以使用以下属性指定持久性单元应记录到的文件: <property name="eclipselink.logging.file" value="output.log"/> 此外,文档还指出,可以使用以下属性将线程标识符包括到记录的信息集中: <property name="eclipselink.logging.thread" value=
<property name="eclipselink.logging.file" value="output.log"/>
此外,文档还指出,可以使用以下属性将线程标识符包括到记录的信息集中:
<property name="eclipselink.logging.thread" value="true"/>
不幸的是,结合这两个属性最多只能得到一个唯一的文件,其中包含所有线程的混合顺序日志信息。这可能会强制以某种方式(例如grep)对文件进行后处理,以获得“每个线程的日志”
我有没有办法得到这个?如果是这样,它一定是一个编程解决方案吗?我假设这是Java?我将创建您自己的日志包装器,该包装器使用
ThreadLocal
。我认为您需要作为自定义日志记录器来完成这项工作。如果您编写自己的日志,您可以检索线程id(thread.getCurrentThread().getId()
)/thread name,并根据该名称选择将每个SessionGenetry写入的位置。是的,它是Java,您刚刚给了我足够的提示来找到解决方案。谢谢,我会尽快发布一个可能的解决方案作为答案