Java Log4j2:文件日志记录不使用jar

Java Log4j2:文件日志记录不使用jar,java,logging,jar,log4j2,Java,Logging,Jar,Log4j2,我有一个配置了log4j2的java应用程序,以便登录到控制台和文件。 当我从ecplise启动应用程序时,所有日志都正常(控制台和文件) 当我从CMD或Powershell(作为admin)启动应用程序的jar时,只有控制台日志起作用。 如果我只通过双击启动jar,那么文件日志可以工作(但不显示控制台) 这是我的log4j2.xml配置: <?xml version="1.0" encoding="UTF-8"?> <Configuration status="INFO"&g

我有一个配置了log4j2的java应用程序,以便登录到控制台和文件。 当我从ecplise启动应用程序时,所有日志都正常(控制台和文件)

当我从CMD或Powershell(作为admin)启动应用程序的jar时,只有控制台日志起作用。 如果我只通过双击启动jar,那么文件日志可以工作(但不显示控制台)

这是我的log4j2.xml配置:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO">

<Appenders>

<File name="file_all" fileName="logs/ALL.log">
  <PatternLayout>
    <Pattern>%d{yyyy-MM-dd HH:mm:ss} [%t] %-5level %logger{36} - %msg%n</Pattern>
  </PatternLayout>
</File>

<File name="file_error" fileName="logs/ERROR.log">
  <PatternLayout>
    <Pattern>%d{yyyy-MM-dd HH:mm:ss} [%t] %-5level %logger{36} - %msg%n</Pattern>
  </PatternLayout>
</File>

<Console name="STDOUT" target="SYSTEM_OUT">
  <PatternLayout pattern="%d{HH:mm:ss} [%t] %-5level %logger{36} - %msg%n"/>
</Console>

</Appenders>

<Loggers>

<Root level="trace">
  <AppenderRef ref="file_all" level="INFO"/>
  <AppenderRef ref="file_error" level="ERROR"/>
  <AppenderRef ref="STDOUT" level="INFO"/>
</Root>
</Loggers>

</Configuration>

%d{yyyy-MM-dd HH:MM:ss}[%t]-5级别%logger{36}-%msg%n
%d{yyyy-MM-dd HH:MM:ss}[%t]-5级别%logger{36}-%msg%n

您的log4j2.xml配置文件以
开头,您是如何创建jar的?jar清单是什么样子的?jar使用Maven汇编插件。这是清单:很抱歉,我没有粘贴xml配置文件的第一行,即。我会更新打开的帖子。顺便说一句,这是status=“TRACE”的输出:输出的下一行不存在,因为我的业务逻辑OK日志文件夹的一部分是在Powershell的当前目录下创建的(c:)。谢谢你的帮助;)但是,如果我想在jar目录中创建文件夹,我应该如何设置log4j2.xml?嗯。。。也许没有一个好的方法可以做到这一点。也许设置一个系统属性并在log4j2.xml路径名中使用${sys:mypath}查找语法?( )