log4j2 应用

博客介绍了Log4j2的相关配置。首先要在pom.xml中添加依赖,接着在log4j2.xml里配置日志策略,还可在自定义listener中配置以动态修改日志文件名,这些操作都与信息技术领域的日志处理相关。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.添加依赖 (pom.xml)


        <!--log4j2-->
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
            <version>2.11.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>2.11.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-1.2-api</artifactId>
            <version>2.11.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-web</artifactId>
            <version>2.11.0</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.12</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
            <version>1.7.25</version>
        </dependency>
        <dependency >
            <groupId >javax.mail </groupId >
            <artifactId >mail </artifactId >
            <version >1.4.5 </version >
        </dependency >
        <dependency >
            <groupId >com.sun.mail </groupId >
            <artifactId >javax.mail </artifactId >
            <version >1.5.4 </version >
        </dependency >

2.配置日志策略(log4j2.xml)


<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
    <properties>
        <property name="logPath">/opt/tomcat7/logs/creditplatform/${sys:logName}</property>
        <property name="errorLogPath">/opt/tomcat7/logs/creditplatform/error/${sys:logName}</property>
    </properties>
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout charset="UTF-8" pattern="[%5p] [%-d{yyyy-MM-dd HH:mm:ss}] %C.%M(%L) | %m%n" />
        </Console>
        <RollingFile name="debugFile" fileName="${logPath}" filePattern="${logPath}-%d{yyyy-MM-dd}-%i.log.gz">
            <PatternLayout charset="UTF-8" pattern="[%5p] [%-d{yyyy-MM-dd HH:mm:ss}] %C.%M(%L) | %m%n"/>
            <Policies>
                <TimeBasedTriggeringPolicy />
                <SizeBasedTriggeringPolicy size="200 MB" />
            </Policies>
            <DefaultRolloverStrategy max="20">
                <Delete basePath="${logPath}" maxDepth="2">
                    <IfFileName glob="*/app*.log.gz" />
                    <IfLastModified age="30D" />
                </Delete>
            </DefaultRolloverStrategy>
        </RollingFile>
        <!--如果需要配置多个Rollingfile地址,还需要在root下添加appender-ref ref="RollingFile1"/>只显示error级别的信息-->
        <RollingFile name="errorFile" fileName="${errorLogPath}" filePattern="${errorLogPath}-%d{yyyy-MM-dd}-%i.log.gz">
            <PatternLayout charset="UTF-8" pattern="[%5p] [%-d{yyyy-MM-dd HH:mm:ss}] %C.%M(%L) | %m%n"/>
            <Policies>
                <TimeBasedTriggeringPolicy/>
                <SizeBasedTriggeringPolicy size="50MB"/>
            </Policies>
        </RollingFile>

        <SMTP name="Mail" subject="Error Log" to="....@qq.com" from=".....@alibaba.com"
              smtpHost="smtp.mxhichina.com" smtpUsername="...." smtpDebug="true"
              smtpPassword="......" smtpPort="25" bufferSize="50">
        </SMTP>
    </Appenders>

    <Loggers>
        <!-- 第三方日志系统 -->
        <logger name="org.springframework.core" level="info"/>
        <logger name="org.springframework.beans" level="info"/>
        <logger name="org.springframework.context" level="info"/>
        <logger name="org.springframework.web" level="info"/>
        <logger name="org.apache.http" level="warn"/>
        <logger name="org.apache.zookeeper" level="ERROR" additivity="false"></logger>
        <Root level="DEBUG">
            <AppenderRef ref="debugFile" />
            <AppenderRef level="ERROR" ref="errorFile" />
            <AppenderRef ref="Console" />
            <!--<AppenderRef level="ERROR" ref="Mail"/>-->
        </Root>
    </Loggers>
</Configuration>

3.动态修改日志文件名(自定义listenter中配置)

    @Override
    public void contextInitialized(ServletContextEvent servletContextEvent) {
        try {
            //log4j2相关设置
            System.setProperty("logName", InetAddress.getLocalHost().getHostName()+".log");
            File file = new File(this.getClass().getClassLoader().getResource("").getPath()+"log4j2.xml");
            LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
            ctx.setConfigLocation(file.toURI());
            ctx.reconfigure();           
        } catch (Exception e) {
           Log.error(e.getMessage(),e);
        }       
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值