【发布时间】:2014-01-31 18:06:23
【问题描述】:
导出到可执行 jar 时出现问题。
我将 maven 和 slf4j 与 log4j 一起使用
我的 pom.xml
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.2</version>
<scope>runtime</scope>
</dependency>
我在 /src/java/main 中添加了一个 log4j.xml(与生成的目标文件夹中的相同):
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>
<appender name="FILE" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="/media/dlm/log/dlm.log" />
<param name="Threshold" value="INFO" />
<param name="Append" value="false" />
<param name="MaxFileSize" value="10MB" />
<param name="MaxBackupIndex" value="1" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}:%L] %m %n" />
</layout>
</appender>
<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out" />
<param name="Threshold" value="INFO" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%d{ABSOLUTE} %-5p [%c{1}:%L] %m %n" />
</layout>
</appender>
<root>
<level value="INFO" />
<appender-ref ref="FILE" />
</root>
</log4j:configuration>
但是当我从 eclipse 导出时,log4j.xml 被更改为下一个:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>
<appender name="FILE" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="/tmp/dlm/log4j.log" />
<param name="Threshold" value="INFO" />
<param name="Append" value="false" />
<param name="MaxFileSize" value="1MB" />
<param name="MaxBackupIndex" value="1" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p %X{service} %X{user} [%c] %m%n" />
</layout>
</appender>
<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out" />
<param name="Threshold" value="ERROR" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%d{ABSOLUTE} %-5p %X{service} %X{user} [%c{1}] %m%n" />
</layout>
</appender>
<root>
<level value="INFO" />
<appender-ref ref="CONSOLE" />
</root>
</log4j:configuration>
我尝试使用出现 here 的 log4j.properties 文件,但没有。
提前感谢您的回答。
【问题讨论】:
-
你为什么使用 Eclipse 导出,为什么不让 Maven 使用
mvn package构建你的工件? -
只是,我认为比每次打开终端并写入命令更简单。但是,我会做它来比较以检查是否发生效果。
-
您可以右键单击 Eclipse 项目,而不是使用终端,选择“运行方式”和“Maven 安装”或“Maven 构建...”。第一次运行后,您可以将设置添加到“运行”->“组织收藏夹”,以便它粘在菜单中。
-
我不知道那个技巧!!。总是,我在用 Maven 编译时遇到问题,尽管在 Eclipse 中运行良好。这就是为什么我更喜欢使用 eclipse 导出可执行文件的主要原因。实际上,现在我正在尝试使用 maven 解决编译问题。
-
您实际看到的 log4j 配置文件(与您期望看到的相反)是否存在于您工作区的任何位置?在磁盘上?它是从某个地方的脚本生成的吗?
标签: eclipse maven log4j slf4j m2eclipse