小编Rem*_*pma的帖子

为Log4J2 + Apache HttpClient启用调试日志记录

我试图激活我的Apache HttpClient的调试日志记录,但无法使其工作(没有得到任何与HttpClient相关的日志记录输出).

这是我目前使用的log4j2配置:

<?xml version="1.0" encoding="UTF-8"?>
<configuration status="OFF">
    <appenders>
        <Console name="console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss} [%t] %-5level %logger{36} - %msg%n" />
        </Console>

        <RollingFile name="RollingRandomAccessFile" fileName="logs/test.log" filePattern="logs/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz">
            <PatternLayout>
                <Pattern>
                    %d %p %c{1.} [%t] %m%n
                </Pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy />
                <SizeBasedTriggeringPolicy size="10 MB" />
            </Policies>
            <DefaultRolloverStrategy max="20" />
        </RollingFile>

        <Async name="async">
            <AppenderRef ref="RollingRandomAccessFile" />
        </Async>
    </appenders>
    <loggers>
        <logger name="org.apache.http.wire" level="debug" />
        <logger name="org.apache.http.client" level="debug" />
        <logger name="org.apache.xerces.parsers.SAXParser" level="warn" />
        <logger name="org.hibernate" level="warn" />
        <root level="trace">
            <appender-ref ref="console" />
            <appender-ref ref="async" />
        </root>
    </loggers> …
Run Code Online (Sandbox Code Playgroud)

java apache logging apache-httpclient-4.x log4j2

8
推荐指数
2
解决办法
8788
查看次数

如何将java.util.logging发送到log4j2?

我正在开发一个使用NetBeans平台的项目.在底层,NetBeans使用该java.util.logging框架.

我想通过结合拦截这些日志调用java.util.logginglog4j2.这可能吗?

之前的问题已经被问到类似,但具体log4j而不是log4j2!

java logging log4j log4j2

8
推荐指数
2
解决办法
7280
查看次数

3.0 servlet中的Log4J2配置

我尝试根据文档(以及相关的SO问题)设置LOG4J,但它不会创建假定的文件,但WildFly中有这样的日志:

No Log4j context configuration provided. This is very unusual
Run Code Online (Sandbox Code Playgroud)

web.xml中

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
       version="3.0">

<context-param>
      <param-name>log4jConfigLocation</param-name>
     <param-value>/WEB-INF/classes/log4j2.xml</param-value>
</context-param>
Run Code Online (Sandbox Code Playgroud)

app.war/WEB-INF /类/ log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<Configuration monitorInterval="30">
    <!-- http://logging.apache.org/log4j/2.x/manual/configuration.html -->
    <Properties>
        <Property name="filename">c:/oauth.log</Property>
    </Properties>

    <Filter type="ThresholdFilter" level="trace"/>

    <Appenders>
        <Appender type="File" name="File" fileName="${filename}">
            <Layout type="PatternLayout">
                <Pattern>%d %p %C{1.} [%t] %m%n</Pattern>
            </Layout>
        </Appender>
        <File name="MyFile" fileName="c:/oauth2.log" immediateFlush="true">
            <PatternLayout pattern="%d{yyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </File>
    </Appenders>

    <Loggers>
        <Logger name="cz.literak.demo" level="debug" additivity="true">
            <AppenderRef ref="File"/>
        </Logger>
        <Root level="error">
            <AppenderRef ref="MyFile"/>
        </Root> …
Run Code Online (Sandbox Code Playgroud)

java logging log4j servlet-3.0 log4j2

8
推荐指数
2
解决办法
1万
查看次数

Log4j2 AsyncLogger,滚动文件appender没有显示文件行号

我使用log4j2与以下依赖项:

<!-- LOG4J2 -->
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>2.0-rc1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.0-rc1</version>
    </dependency>
    <dependency>
        <groupId>com.lmax</groupId>
        <artifactId>disruptor</artifactId>
        <version>3.0.1</version>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

Log4j2.xml内容:

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

<Appenders>
    <Console name="CONSOLE" target="SYSTEM_OUT">
        <PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n" />
    </Console>

    <!-- Generate rolling log for router with per hour interval policy -->
    <RollingFile name="ProcessorRollingFile" fileName="D:/ocsprocessor.log"
        filePattern="D:/ocsprocessor.log.%d{MM-dd-yyyy}-%i.log">
         <PatternLayout>
      <pattern>%d{ISO8601} [%t] %p %c %L - %m%n</pattern>
  </PatternLayout>
        <Policies>
            <TimeBasedTriggeringPolicy interval="1" />
        </Policies>
        <DefaultRolloverStrategy max="24" />
    </RollingFile>



    <!-- Register Async appender -->
    <Async name="AsyncRollingFile"> …
Run Code Online (Sandbox Code Playgroud)

java logging log4j log4j2

8
推荐指数
1
解决办法
9900
查看次数

如何为log4j2 RollingFileAppender进行编程配置

我在没有配置文件的情况下以编程方式使用log4j2,但是在代码中进行配置.我正在尝试使用log4j2 RollingFileAppender来保存最后10个日志文件.我尝试使用SizeBasedTriggeringPolicy.限制文件大小.大小限制有效,但它不会创建旧的日志文件,只是不断删除和写入一个原始日志文件.

public static void configLog() {
        String dir = System.getProperty("java.io.tmpdir") + "test\\";
        final LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
        final Configuration config = ctx.getConfiguration();
        PatternLayout layout = PatternLayout.newBuilder().withConfiguration(config).withPattern(PatternLayout.SIMPLE_CONVERSION_PATTERN).build();
        SizeBasedTriggeringPolicy policy = SizeBasedTriggeringPolicy.createPolicy("1KB");
        DefaultRolloverStrategy strategy = DefaultRolloverStrategy.createStrategy("10", "0", null, null, config);
        RollingFileManager fileManager = RollingFileManager.getFileManager(dir + "log\\test.log", dir + "log\\test-%i.log", false, false, policy, strategy, null, layout, 128);
        policy.initialize(fileManager);
        RollingFileAppender appender = RollingFileAppender.createAppender(dir + "log\\test.log", dir + "log\\test-%i.log",
                "false", "File", "false", "128", "true", policy, strategy, layout, (Filter) null, "false", …
Run Code Online (Sandbox Code Playgroud)

java log4j2

8
推荐指数
1
解决办法
5968
查看次数

将log4j.xml转换为log4j2.xml的懒惰方式

是否有一种简单/懒惰的方式(例如shell脚本等)将大的log4j.xml文件转换为log4j2.xml等效文件?

或者每个人都手动完成此操作?

java configuration logging log4j log4j2

8
推荐指数
1
解决办法
4925
查看次数

如何使用log4j2删除旧日志

(仅供参考我已经在Internet上搜索了很多文档.我使用的是storm-0.10.0-beta1.在Storm中使用log4j2的配置文件是worker.xml)

现在,我尝试使用log4j2.

我正在寻找删除旧日志的方法,但我找不到.部分配置如下.

    <RollingFile name="SERVICE_APPENDER"
             fileName="${sys:storm.home}/logs/${sys:logfile.name}.service"
             filePattern="${sys:storm.home}/logs/${sys:logfile.name}.service.%d{yyyyMMdd}">
        <PatternLayout>
            <pattern>${pattern}</pattern>
        </PatternLayout>
        <Policies>
            <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
        </Policies>
        <DefaultRolloverStrategy max="9"/>
    </RollingFile>
Run Code Online (Sandbox Code Playgroud)

起初,我预计将删除超过3天的日志文件.

但实际上,事实并非如此.

所以,我想知道是否有办法删除旧日志.

如果有一种方法我还没有抓到,请通知我.

java logging log4j log4j2

8
推荐指数
1
解决办法
2万
查看次数

如何删除旧版的log4j2日志,最多可保存10个文件?

我想要的是:

  • 10个日志文件的最大,在
  • 每个日志文件,大小不超过50MB.

因此,logs文件夹永远不会增长(50MB*10)= 500MB.

但似乎我的log4j2配置没有正确完成.

发生的事情是:

  • 日志在50 MB后翻转
  • 每天最多保存10个日志
  • 因此,日志文件夹中保存的日志文件数量没有限制(因为例如,在2天内,每个50mb的20个日志已经收集)

这是配置:

<Configuration status="WARN">
    <Appenders>
        <RollingFile name="RollingFile" fileName="log/my.log" filePattern="log/my-%d{MM-dd-yyyy}-%i.log">
          <PatternLayout>
                <Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
          </PatternLayout>
          <Policies>
                <OnStartupTriggeringPolicy />
                <TimeBasedTriggeringPolicy />
                <SizeBasedTriggeringPolicy size="50 MB"/>
          </Policies>
          <DefaultRolloverStrategy max="10"/>
        </RollingFile>
    </Appenders>
    <Loggers>
        <Root level="info">
            <AppenderRef ref="RollingFile"/>
        </Root>
    </Loggers>
</Configuration>
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

java logging log4j rollingfileappender log4j2

8
推荐指数
1
解决办法
1万
查看次数

Log4j2使用{}反对使用%d或%s

在Log4j2中,以下两者同样有效并且不会导致任何字符串连接的日志级别比DEBUG更具体?并且出于任何原因/情况会优先于其他原因吗?

log.warn(String.format("Number of cars : %d",carCount));
log.warn("Number of cars : {}",carCount );
Run Code Online (Sandbox Code Playgroud)

{}适用于任何类型的对象吗?

java configuration logging log4j log4j2

8
推荐指数
1
解决办法
6120
查看次数

Log4J 2配置监控和按位比较

一位同事从Log4J 2.3代码中指出了以下片段:

/**
  * Called to determine if the configuration has changed.
  */
 @Override
 public void checkConfiguration() {
     final long current = System.currentTimeMillis();
     if (((counter.incrementAndGet() & MASK) == 0) && (current >= nextCheck)) {
         LOCK.lock();
         try {
             nextCheck = current + intervalSeconds;
             if (file.lastModified() > lastModified) {
                 lastModified = file.lastModified();
                 for (final ConfigurationListener listener : listeners) {
                     final Thread thread = new Thread(new ReconfigurationWorker(listener, reconfigurable));
                     thread.setDaemon(true);
                     thread.start();
                 }
             }
         } finally {
             LOCK.unlock();
         }
     }
Run Code Online (Sandbox Code Playgroud)

哪里counter是一个 …

java logging java.util.concurrent log4j2

7
推荐指数
1
解决办法
880
查看次数