Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用EclipseLink登录每个线程的单独文件_Java_Multithreading_Logging_Eclipselink - Fatal编程技术网

Java 如何使用EclipseLink登录每个线程的单独文件

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=

场景:使用EclipseLink JPA实现与关系数据库交互的多线程应用程序

所需的:让每个线程将SQL活动记录到不同的文件中

声明可以使用以下属性指定持久性单元应记录到的文件:

<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,您刚刚给了我足够的提示来找到解决方案。谢谢,我会尽快发布一个可能的解决方案作为答案