java - 配置 org.apache.log4j.rolling.RollingFileAppender

标签 java logging log4j

我在类路径中添加了 jar apache-log4j-extras-1.1.jar 和 log4j-1.2.15.jar,并且在 log4j.properties 中没有配置。 没有错误,但无法在日志文件中打印。我还提到了 stackoverflow 的问题,但它对我不起作用。任何有关它的建议将不胜感激。

如果使用rolling.RollingFileAppender,是否需要在log4j.properties中进行配置

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="ASYNC" class="org.apache.log4j.AsyncAppender">
        <param name="BufferSize" value="256"/>
        <appender-ref ref="CONSOLE" />
        <appender-ref ref="DROLLFILE" />

    </appender>
    <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern"
                value="%d{yyyy/MM/dd HH:mm:ss,SSS} %-5p %c %x - %m %n" />
        </layout>
    </appender>
    <appender name="DROLLFILE" class="org.apache.log4j.rolling.RollingFileAppender" >
     <param name="threshold" value="DEBUG"/>
     <rollingPolicy name="file"  
                      class="org.apache.log4j.rolling.TimeBasedRollingPolicy">
        <param name="FileNamePattern" 
               value="/media/mgs1032/57403571-7065-47b8-88cd-1b20a9229764/ezeClick/ezeClickSetUp/PaymentGateWorkSpace/libs/logger/logs/ezeClick.log.%d{yyyy-MM-dd}.gz"/>
        <param name="ActiveFileName" value="/media/mgs1032/57403571-7065-47b8-88cd-1b20a9229764/ezeClick/ezeClickSetUp/PaymentGateWorkSpace/libs/logger/logs/ezeClick.log"/>
     </rollingPolicy>
     <layout class="org.apache.log4j.EnhancedPatternLayout" >
        <param name="ConversionPattern" 
               value="%d{ISO8601} %-5p - %-26.26c{1} - %m%n" />
    </layout>
  </appender>


    <logger name="amex.quickpay" additivity="false">
        <level value="debug" />
        <appender-ref ref="ASYNC" />
    </logger>
    <root>
        <priority value="info" />
        <appender-ref ref="ASYNC" />
    </root>

</log4j:configuration>

最佳答案

你的代码确实不知道有什么问题,但这对我有用(没有 log4.properties)

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="error" monitorInterval="30" strict="true">

    <Properties>
        <Property name="log-path">${sys:catalina.base}/logs/</Property>
        <Property name="filename">appName.log</Property>
    </Properties>

    <Appenders>
        <RollingFile name="RollingFile" fileName="${log-path}/${filename}" filePattern="${log-path}/${filename}-%d{yyyy-MM-dd}-%i.log">
            <Layout type="PatternLayout" pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
            <Policies>
                <OnStartupTriggeringPolicy />
                <TimeBasedTriggeringPolicy />
                <SizeBasedTriggeringPolicy size="5 MB" />
            </Policies>
            <DefaultRolloverStrategy max="10" />
        </RollingFile>
    </Appenders>

    <Loggers>
        <Root level="info">
            <AppenderRef ref="RollingFile" />
        </Root>
    </Loggers>

</Configuration>

编辑: 注意:这是针对 log4j 2

关于java - 配置 org.apache.log4j.rolling.RollingFileAppender,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34450702/

相关文章:

java - 以 DD/MM/YYYY 格式设置日期格式,以便在日历选择器 View 中选择多个日期 (Android)

linux - 如何让 Forever 每天写入不同的日志文件?

java - 当我构建maven单元测试时,出现以下错误

java - 如何为所有类配置log4j fileappender?

java - log4j.xml 本地构建的优先级

java - OKHTTP newCall() 在调用 rest API 时挂起

java - 想要在jsp页面添加动态内容

java - Spring IoC : Reasons to have null checks with constructor autowiring

Node.js log4j-like 日志系统

perl - 在 Perl DBI 模块中获取完整的错误消息