在 Eclipse 控制台中显示 Log4J2 输出

Show Log4J2 Output in Eclipse Console

我无法配置我的 Web 应用程序项目以在 Eclipse 控制台 中显示 LOG4J2 输出。它会转到某个 tomcat 日志位置。

尝试了所有线程,但没有任何帮助。

首先,假设 LOG4J2.XML 原来在这里:./appconfig/dev/log4j2.xml

我按照示例将此文件夹添加为 Class 路径下的库,但这没有用。

然后我尝试 this example 使用配置文件的 -D 参数,

还尝试将其添加到 DeploymentAssembly 将移动到的位置 WEB-INF/classes,

没有任何帮助,除了 Hibernate-only 输出之外,我没有得到此应用程序的 log.info/log.error 的 Eclipse 控制台输出。

LOG4J2.XML:

<?xml version="1.0" encoding="utf-8"?>
<Configuration>
    <Appenders>
        <Console name="console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{DATE} [%X{sessionId}] %X{userId} %-5p %c{1}(Line %L) - %m%n"/>
        </Console>

        <RollingFile name="file" fileName="/local/content/tomcat/idp/logs/idp.log" append="true"
                     filePattern="/local/content/tomcat/idp/logs/idp.log.%i">
            <PatternLayout>
                <Pattern>%d{DATE} [%X{sessionId}] %X{userId} %-5p %c{1}(Line %L) - %m%n</Pattern>
            </PatternLayout>
            <Policies>
                <SizeBasedTriggeringPolicy size="10 MB"/>
            </Policies>
            <DefaultRolloverStrategy max="10"/>
        </RollingFile>
    </Appenders>

    <Loggers>
        <Logger name="gov" level="debug" additivity="false">
            <AppenderRef ref="file"/>
        </Logger>

        <Logger name="org.springframework.orm" level="info" additivity="false">
            <AppenderRef ref="file"/>
        </Logger>

        <Logger name="org.hibernate.sql" level="info" additivity="false">
            <AppenderRef ref="file"/>
        </Logger>

        <Logger name="org.springframework.web" level="debug" additivity="false">
            <AppenderRef ref="file"/>
        </Logger>

        <Logger name="org.hibernate.type" level="info" additivity="false">
            <AppenderRef ref="file"/>
        </Logger>

        <Logger name="net.sf.ehcache" level="trace" additivity="false">
            <AppenderRef ref="file"/>
        </Logger>

        <Root level="info">
            <AppenderRef ref="console"/>
            <AppenderRef ref="file"/>
        </Root>
    </Loggers>
</Configuration>

我们想通了。我们必须从 Log4J2.xml.

中删除 additivity="false"

因此,文件是without additivity=false

<?xml version="1.0" encoding="utf-8"?>
<Configuration>
    <Appenders>
        <Console name="console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{DATE} [%X{sessionId}] %X{userId} %-5p %c{1}(Line %L) - %m%n"/>
        </Console>

        <RollingFile name="file" fileName="/local/content/tomcat/idp/logs/idp.log" append="true"
                     filePattern="/local/content/tomcat/idp/logs/idp.log.%i">
            <PatternLayout>
                <Pattern>%d{DATE} [%X{sessionId}] %X{userId} %-5p %c{1}(Line %L) - %m%n</Pattern>
            </PatternLayout>
            <Policies>
                <SizeBasedTriggeringPolicy size="10 MB"/>
            </Policies>
            <DefaultRolloverStrategy max="10"/>
        </RollingFile>
    </Appenders>

    <Loggers>
        <Logger name="gov" level="debug">
            <AppenderRef ref="file"/>
        </Logger>

        <Logger name="org.springframework.orm" level="info">
            <AppenderRef ref="file"/>
        </Logger>

        <Logger name="org.hibernate.sql" level="info">
            <AppenderRef ref="file"/>
        </Logger>

        <Logger name="org.springframework.web" level="debug">
            <AppenderRef ref="file"/>
        </Logger>

        <Logger name="org.hibernate.type" level="info">
            <AppenderRef ref="file"/>
        </Logger>

        <Logger name="net.sf.ehcache" level="trace">
            <AppenderRef ref="file"/>
        </Logger>

        <Root level="info">
            <AppenderRef ref="console"/>
            <AppenderRef ref="file"/>
        </Root>
    </Loggers>
</Configuration>