将 java 输出重定向到 log4j2

问题描述

有 log4j2.xml 文件

    <?xml version="1.0" encoding="UTF-8"?>
    <Configuration status="WARN">
        <Appenders>
            <Console name="Console" target="SYstem_OUT">
                <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
            </Console>

             <RollingFile name="RollingFileAppender" fileName="logs/app.log"
                filePattern="logs/${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log">
                 <PatternLayout>
                     <Pattern>%d [%t] %p %c - %m%n</Pattern>
                 </PatternLayout>
                 <Policies>
                     <OnStartupTriggeringPolicy />
                     <TimeBasedTriggeringPolicy />
                     <SizeBasedTriggeringPolicy size="50 MB" />
                 </Policies>
                 <DefaultRolloverStrategy max="20" />
            </RollingFile>
        </Appenders>
        <Loggers>
    <!--
            <Root level="INFO">
                <AppenderRef ref="Console"/>
            </Root>
    -->
        <Root level="DEBUG">
            <AppenderRef ref="RollingFileAppender" />
        </Root>
        <Logger name="redis.clients.jedis" level="DEBUG">
            <AppenderRef ref="RollingFileAppender" />
        </Logger>
        </Loggers>
    </Configuration>

我在 logs/app.log 和 logs/DATE-FORMAT/backup 中有所需的日志... 不幸的是,当我使用命令午餐时我的 Java 程序:

    java -Dargument -cp PATH/TO/APP.JAR:/PATH/TO/ MyJavaClass

我仍在从我正在使用的 jedis 等控制台接收输出。 来自 redis 的日志如下所示:

2021 年 7 月 7 日下午 1:09:21 redis.clients.jedis.JedisSentinelPool initSentinels

信息:正在尝试从可用的 Sentinels 中找到 master...

2021 年 7 月 7 日下午 1:09:21 redis.clients.jedis.JedisSentinelPool initSentinels

信息:Redis 主节点在 IP:6379 上运行,正在启动 Sentinel 侦听器...

2021 年 7 月 7 日下午 1:09:21 redis.clients.jedis.JedisSentinelPool initPool

信息:创建 JedisPool 以在 IP:6379 上掌握

如何将它们重定向到 app.log?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)