ssm(xmlモード)でのlog4j2の構成方法

方法1:デフォルト構成を採用する

 1.web.xmlで構成します

 2.リソースリソースパスの下にlog4j2構成ファイルを追加します。ファイル名はlog4j2.xmlであることに注意してください。

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="OFF" monitorInterval="1800">
    <properties>
        <property name="LOG_HOME">D:/logs-dxk-ssmbasics</property>
        <property name="FILE_NAME">finance-pay</property>
    </properties>

    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
        </Console>

        <!--日志输出路径-->
        <RollingFile name="running-log" fileName="${LOG_HOME}/${FILE_NAME}.log"
                     filePattern="${LOG_HOME}/$${date:yyyy-MM}/${FILE_NAME}-%d{yyyy-MM-dd}-%i.log.gz"
                     immediateFlush="true">
            <PatternLayout
                    pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} %level [%thread][%file:%line] - %msg%n" />
            <Policies>
                <TimeBasedTriggeringPolicy />
                <SizeBasedTriggeringPolicy size="10 MB" />
            </Policies>
            <DefaultRolloverStrategy max="20" />
        </RollingFile>
    </Appenders>
    <Loggers>

        <Logger name="com.nn.*" level="trace" additivity="true">
            <AppenderRef ref="running-log"/>
        </Logger>

        <Root level="info">
            <!-- 这里是输入到文件,很重要-->
            <AppenderRef ref="running-log"/>
            <!-- 这里是输入到控制台-->
            <AppenderRef ref="Console"/>
        </Root>
        <!--这里不再进行配置打印sql  可以到druid监控中心查看http://localhost:8080/ssm/druid-->

    </Loggers>
</Configuration>

方法2(推奨):

 1. xmlで構成します。構成ファイルのパスを変更して、強迫性障害の患者(私)に対処できます。

 2.ServletContextListenerを実装します

public class Log4j2ConfigListener implements ServletContextListener {
    private static final String KEY = "log4jConfigLocation";

    @Override
    public void contextDestroyed(ServletContextEvent arg0) {
    }

    @Override
    public void contextInitialized(ServletContextEvent arg0) {
        String fileName = getContextParam(arg0);
        Configurator.initialize("Log4j2", fileName);
    }

    private String getContextParam(ServletContextEvent event) {
        Enumeration<String> names = event.getServletContext().getInitParameterNames();
        while (names.hasMoreElements()){
            String name = names.nextElement();
            String value = event.getServletContext().getInitParameter(name);
            if(name.trim().equals(KEY)){
                return value;
            }
        }
        return null;
    }

}

3.構成ファイルの内容は、最初のメソッドlog4j2.xmlの内容と同じです(これで、詳細な構成が完了しました。自分で見つけることができます。ここでは簡単な構成のみを行いました)


以下は、構成中に発生したエラーであり、次の---- ""を参照できます。

最初の方法は、構成ファイルがリソースの下に配置されておらず、構成ファイルが見つからない場合にエラーを報告します(公式のデフォルトでは、構成ファイルlog4j2.xmlをリソースパス-resourceの下に配置します)。

12-Nov-2018 13:51:26.488 INFO [RMI TCP Connection(3)-127.0.0.1] org.apache.jasper.servlet.TldScanner.scanJars少なくとも1つのJARがTLDについてスキャンされましたが、TLDは含まれていません。スキャンされたがTLDが見つからなかったJARの完全なリストについては、このロガーのデバッグログを有効にしてください。スキャン中に不要なJARをスキップすると、起動時間とJSPコンパイル時間を改善できます。
エラーStatusLoggerlog4j2構成ファイルが見つかりません。デフォルト構成の使用:エラーのみをコンソールに記録します。システムプロパティ 'log4j2.debug'を設定して、Log4j2の内部初期化ログを表示します。

おすすめ

転載: blog.csdn.net/ke_new/article/details/83990828