首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >找不到Log4j2.xml配置文件

找不到Log4j2.xml配置文件
EN

Stack Overflow用户
提问于 2018-11-02 16:43:17
回答 1查看 492关注 0票数 0

我有一个项目,我试图让Apache Log4j2在不同的文件中登录。我的项目是Spring应用程序,并且在项目结构中有一个配置文件log4j2.xml,但是当我运行该项目时,无论是作为Spring Boot还是作为tomcat中的war,除了默认的标准输出之外,似乎没有发生日志记录。

我的项目结构:

代码语言:javascript
复制
-src
--main
---resources
----static
----templates
----application.properties
----log4j2.xml

我的配置文件:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="TRACE" monitorInterval="1800">

  <Properties>
        <Property name="logPattern">%d{yyyy-MM-dd HH:mm:ss.SSS} %5p ${hostName} --- [%15.15t] %-40.40c{1.} : %m%n%ex</Property>
        <Property name="log-path">${sys:catalina.home}/logs</Property>
        <Property name="secondary_path">C:/TEMP/logs</Property>
    </Properties>

  <Appenders>

    <Console name="STDOUT" target="SYSTEM_OUT">
      <PatternLayout pattern="${logPattern}"/>
    </Console> 

    <RollingFile name="FileAppenderInfo" fileName="${secondary_path}/stream-info.log" filePattern="${secondary_path}/stream-info-%d{yyyy-MM-dd}-%i.log" append="true" immediateFlush="true">
        <PatternLayout>
            <Pattern>${logPattern}</Pattern>
        </PatternLayout>
        <Policies>
            <SizeBasedTriggeringPolicy size="10MB"/>
        </Policies>
        <DefaultRolloverStrategy max="10"/>
    </RollingFile>


    <RollingFile name="FileAppenderError"  fileName="${secondary_path}/stream-error.log" filePattern="${secondary_path}/stream-error-%d{yyyy-MM-dd}-%i.log" append="true" immediateFlush="true">
        <PatternLayout>
            <Pattern>${logPattern}</Pattern>
        </PatternLayout>
        <Policies>
            <SizeBasedTriggeringPolicy size="10MB"/>
        </Policies>
        <DefaultRolloverStrategy max="10"/>
    </RollingFile>

  </Appenders>

  <Loggers>

    <Logger name="InfoLogger" level="error">
        <AppenderRef ref="FileAppenderInfo"/>
    </Logger>

    <Logger name="ErrorLogger" level="error">
        <AppenderRef ref="FileAppenderError"/>
    </Logger>

    <Root level="error">
      <AppenderRef ref="STDOUT"/>
    </Root>

  </Loggers>

</Configuration>

我试图寻找解决方案,但似乎找不到问题所在,我甚至尝试创建一个新项目并实现依赖项、xml文件,并尝试登录代码。

我的代码看起来像这样:

代码语言:javascript
复制
private static final Logger log = LogManager.getLogger("InfoLogger");

log.info("POST HAS BEEN MADE");

Pom文件:

代码语言:javascript
复制
<!-- Dependency for log4j2 -->

      <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>2.11.1</version>
      </dependency>
      <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.11.1</version>
      </dependency>

我也尝试过不使用版本标签。

希望有人能帮上忙谢谢

EN

回答 1

Stack Overflow用户

发布于 2018-11-02 23:32:48

两个建议:

1)使用包名指定记录器。

代码语言:javascript
复制
   <Logger name="com.sample" level="error">
     <AppenderRef ref="FileAppenderInfo"/>
   </Logger>

2)更改代码以匹配记录器

私有静态最终Logger log = LogManager.getLogger();//默认取当前类名

LogManager.getLogger(Test.class.getName());//指定类名

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53115208

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档