如何使用log4j2在项目基础目录下创建日志文件?

问题描述 投票:0回答:1

我想在我的maven项目的项目库目录下创建日志文件,我使用的是log4j2框架,在srcmianresources文件夹下保留了log4j2.xml文件,以下是该文件,请更新其中的问题。

<?xml version="1.0" encoding="UTF-8"?>
<Configuration xmlns:xi="http://www.w3.org/2001/XInclude"
   packages="com.viveo.rtcc.common.client.traces" status="WARN">
       <Properties>
             <Property name="log-path">appLogs</Property>

       </Properties>
       <Appenders>
                 <Console name="Console" target="SYSTEM_OUT">
                    <!-- <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} 
                      - %msg%n"/> -->
                    <PatternLayout pattern="[ %d ] %p %t %c : %m%n" />
            </Console>
            <RollingFile name="rollingFileAppender"
                fileName="${log-path}/reLog.log"
                filePattern="logs/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz">
                    <PatternLayout>
                          <Pattern>%d [%t] %p %c - %m%n</Pattern>
                    </PatternLayout>
                    <Policies>
                          <!-- <OnStartupTriggeringPolicy /> <TimeBasedTriggeringPolicy /> -->
                          <SizeBasedTriggeringPolicy size="10000 KB" />
                    </Policies>
                    <DefaultRolloverStrategy max="20" />
             </RollingFile>
             <MessageAreaAppender name="MessageAreaAppender" />
       </Appenders>
       <Loggers>
             <!-- <Root level="DEBUG"> <AppenderRef ref="RollingFileAppender" /> <AppenderRef 
                ref="Console" />
 <AppenderRef ref="MessageAreaAppender" /> </Root> -->


             <Logger name="com.yourloggername" level="debug"
                additivity="false">
                    <!-- <AppenderRef ref="ConsoleAppender" /> -->
                    <AppenderRef ref="rollingFileAppender" />
             </Logger>

             <Root level="info">
                    <!-- <AppenderRef ref="ConsoleAppender" /> -->
                    <AppenderRef ref="rollingFileAppender" />
             </Root>
       </Loggers>
</Configuration>
log4j log4j2 appender rollingfileappender
1个回答
0
投票

我觉得你的配置有问题。

  1. Maven构建运行时,工作目录设置为项目的根目录。任何文件的创建都是在根目录下进行的。在你的配置中,这意味着它将在名为appLogs的目录中创建日志。这在Maven构建中是一个很糟糕的做法。你应该把它改成目标applogs。
  2. 你的filePattern包含%d{dMM-dd-yy},但你的触发策略都不是基于时间的。如果没有基于时间的触发,我希望在应用程序运行时,时间永远不会改变。
© www.soinside.com 2019 - 2024. All rights reserved.