springmvc日志管理配置

springmvc日志管理配置,第1张

一、什么是日志?
  1. 日志:用于记录系统中发生的各种事件。记录的位置常见的有:控制台、磁盘文件
  2. 日志级别从高到底:

TRACE

  1. TRACE用到比较少
  2. 当日志级别为DEBUG时,可以从日志中看到程序运行中的很多细节,比如运行到了哪个方法,方法里面的各种数据的值是什么样
  3. WARN日志会打印提示有报错隐患
  4. ERROR日志会打印报错信息
  5. FATAL提示有严重错误

日志作用:通过日志观察,分析项目的运行情况
通过日志分析用户的使用情况(大数据分析)

二、日志管理方案1 2.1 Log4j+Commons-Logging 2.1.1 导入依赖
  • junit是测试用的
<dependency>
            <groupId>log4jgroupId>
            <artifactId>log4jartifactId>
            <version>1.2.17version>
        dependency>
        <dependency>
            <groupId>commons-logginggroupId>
            <artifactId>commons-loggingartifactId>
            <version>1.2version>
        dependency>
        <dependency>
            <groupId>junitgroupId>
            <artifactId>junitartifactId>
            <version>4.12version>
            <scope>compilescope>
        dependency>
2.1.2 基本使用
  1. 新建Maven
  2. 导入上面的依赖
  3. 新建一个测试类HelloLog.java
package com.lyx.log.test;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.junit.Test;

public class LogTest {
    //日志对象
    private Log log = LogFactory.getLog(LogTest.class);
    @Test
    public void test1(){
        log.trace("hello trace!");
        log.debug("hello debug");
        log.info("hello info");
        log.warn("hello warn");
        log.error("hello error");
        log.fatal("hello fatal");
    }
}

  1. 写好了测试类运行发现没有打印
  2. 因为配置追加器,追加器:的意思是我们的日志要输出到哪里
  3. 写一个log4j的配置文件
  4. 新建log4j.xml,配置信息如下
2.1.3 配置信息

DOCTYPE log4j:configuration PUBLIC "-//LOGGER"
        "http://org/apache/log4j/xml/log4j.dtd">
<log4j:configuration>
    
    <appender name="myConsole" class="org.apache.log4j.ConsoleAppender">
        
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern"
                   value="%-d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n"/>
            
        layout>
    appender>
    
    <appender name="myFile1" class="org.apache.log4j.RollingFileAppender">
        <param name="File" value="H:/log/hello.log"/>
        <param name="Append" value="true"/>
        <param name="MaxFileSize" value="1kb"/>
        <param name="MaxBackupIndex" value="2"/>
        
        
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern"
                   value="%-d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n"/>
            

        layout>
    appender>

    <appender name="myFile2" class="org.apache.log4j.DailyRollingFileAppender">
        <param name="File" value="h:/log/world.log"/>
        <param name="Append" value="true"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%-d{yyyy-MM-dd HH:mm:ss,SSS} [%c]-[%p] %m%n"/>
        layout>
    appender>
    <root>
        
        <priority value="all"/>
        <appender-ref ref="myConsole"/>
        <appender-ref ref="myFile1"/>
        <appender-ref ref="myFile2"/>
    root>
log4j:configuration>
2.1.4 日志输出格式

占位符作用
%t输出产生改日志事件的线程名
%p输出优先级,即上面提到的DEBUG、INFO、WARN、ERROR、FATAL
%c输出所在类的全名
%r输出自应用启动到输出该log信息耗费的毫秒数
%mmessage也就是日志的消息
%n换行符
%d输出日志时间点的日期或手机,默认格式为ISO8601,也可以在其后指定格式,比如%-d{yyyy-MM-dd HH:mm:ss,SSS},输出类似:2022-5-11 14:19:33,921
三、日志管理方案2 3.1 Logback+SLF4J 3.1.1 导入依赖
        <dependency>
            <groupId>ch.qos.logbackgroupId>
            <artifactId>logback-classicartifactId>
            <version>1.2.3version>
        dependency>
        <dependency>
            <groupId>junitgroupId>
            <artifactId>junitartifactId>
            <version>4.12version>
            <scope>compilescope>
        dependency>
3.1.2 基本使用
public class LogTest {
    private Logger logger = LoggerFactory.getLogger(LogTest.class);
    @Test
    public void test1() throws InterruptedException {
        while (true){
            logger.trace("hello trace");
            logger.debug("hello debug");
            logger.info("hello info");
            logger.warn("hello warn");
            logger.error("hello error");

        }
    }
}
3.1.3 配置信息
  • 看注释




<configuration scan="true" scanPeriod="50 seconds" debug="true">
    
    <property name="CONSOLE_LOG_PATTERN"
              value="%d{yyyy-MM-dd HH:mm:ss,SSS} |-[%-5p] in %logger.%M[line-%L] -%m%n">property>
    <property name="log.path" value="H:/log2">property>

    
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>debuglevel>
        filter>
        <encoder>
            
            <Pattern>${CONSOLE_LOG_PATTERN}Pattern>
            
            <charset>UTF-8charset>
        encoder>
    appender>

    
    <appender name="file" class="ch.qos.logback.core.FileAppender">
        <file>${log.path}/world.logfile>
        <encoder>
            <Pattern>${CONSOLE_LOG_PATTERN}Pattern>
        encoder>
    appender>

    
    <appender name="file2" class="ch.qos.logback.core.rolling.RollingFileAppender">
        
        <file>${log.path}/world3.logfile>
        
        <encoder>
            
            <Pattern>${CONSOLE_LOG_PATTERN}Pattern>
            
            <charset>UTF-8charset>
        encoder>
        
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            
            <fileNamePattern>${log.path}/world-%d{yyyy-MM-dd}.%i.logfileNamePattern>
            
            <timeBasedFileNamingAndTriggeringPolicy
                    class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>1kbmaxFileSize>
            timeBasedFileNamingAndTriggeringPolicy>
            
            <maxHistory>1maxHistory>
        rollingPolicy>

    appender>

    <root level="trace">
        <appender-ref ref="CONSOLE"/>
        <appender-ref ref="file"/>
        <appender-ref ref="file2"/>
    root>
configuration>

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/919970.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-16
下一篇 2022-05-16

发表评论

登录后才能评论

评论列表(0条)

保存