繁体   English   中英

如何在单个日志文件中写入2个或更多Java项目

[英]How to make 2 or more java project write in a single log file

我正在使用log4j将所有日志写入文件中。 我有2个不同的Java项目,分别是proj1proj2 ,其中project1proj2必需项目。 我已经添加了proj1作为proj2的依赖proj2

proj1已完成log4j设置,并且工作正常。
现在我的问题是当我在proj2运行一个方法时,它也会调用proj1
所以我想两个项目都有一个日志文件。

有任何输入吗?

有多种方法可以写入单个日志文件,但是哪种方法最好取决于您忽略的几个细节。

如果proj2包含proj1作为库,则可以使它使用proj1的log4j配置文件。 之所以可行,是因为您只有一个VM。 这里最简单的解决方案是将第一个项目的配置复制到另一个项目中,或者不给第二个项目任何日志配置。 然后它将从其依赖项读取配置。

如果proj2作为外部进程启动proj1 ,则需要将两个项目都配置为使用SocketAppender,因为只有单个Java VM可以写入单个日志文件。

有关:

我也面临着同样的问题,但是我找到了解决方案,并按如下方式配置了log4j.xml:

使用了一个追加器:

<appender name="FILE1" class="org.apache.log4j.RollingFileAppender">
        <errorHandler class="org.apache.log4j.helpers.OnlyOnceErrorHandler" />
        <param name="File" value="E:/OESController.log" />
        <param name="Append" value="true" />
        <param name="MaxFileSize" value="20KB" />
        <param name="MaxBackupIndex" value="2" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%-5p: %d{dd MMM yyyy HH:mm:ss.SSS} %-5l - %m%n%n" />
        </layout>
    </appender>


<!-- Root Logger -->
    <root>
        <priority value="error" />
            <appender-ref ref="FILE" />     
    </root>

注意 :* 整个应用程序的根记录器日志。 *

如果您仍然遇到问题,请告诉我。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM