Springboot使用自带Logback 与 整合log4j 和 log4j2过程详解

这篇具有很好参考价值的文章主要介绍了Springboot使用自带Logback 与 整合log4j 和 log4j2过程详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

logback 

1、添加依赖
  <!--spring boot依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
2、logback-spring.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!-- 默认的一些配置 -->
    <include resource="org/springframework/boot/logging/logback/defaults.xml"/>
    <!-- 定义应用名称,区分应用 -->
    <property name="APP_NAME" value="logback-test"/>
    <!-- 定义日志文件的输出路径 -->
    <property name="LOG_PATH" value="E:/activity7/logs/${APP_NAME}"/>
    <!-- 定义日志文件名称和路径 -->
    <property name="LOG_FILE" value="${LOG_PATH}/application.log"/>
    <!-- 定义警告级别日志文件名称和路径 -->
    <property name="WARN_LOG_FILE" value="${LOG_PATH}/warn.log"/>
    <!-- 定义错误级别日志文件名称和路径 -->
    <property name="ERROR_LOG_FILE" value="${LOG_PATH}/error.log"/>

    <!-- 将日志滚动输出到application.log文件中 -->
    <appender name="APPLICATION"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 输出文件目的地 -->
        <file>${LOG_FILE}</file>
        <encoder>
            <!-- 使用默认的输出格式打印 -->
            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
            <charset>utf8</charset>
        </encoder>
        <!-- 设置 RollingPolicy 属性,用于配置文件大小限制,保留天数、文件名格式 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!-- 文件命名格式 -->
            <fileNamePattern>${LOG_FILE}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <!-- 文件保留最大天数 -->
            <maxHistory>7</maxHistory>
            <!-- 文件大小限制 -->
            <maxFileSize>50MB</maxFileSize>
            <!-- 文件总大小 -->
            <totalSizeCap>500MB</totalSizeCap>
        </rollingPolicy>
    </appender>

    <!-- 摘取出WARN级别日志输出到warn.log中 -->
    <appender name="WARN" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${WARN_LOG_FILE}</file>
        <encoder>
            <!-- 使用默认的输出格式打印 -->
            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
            <charset>utf8</charset>
        </encoder>
        <!-- 设置 RollingPolicy 属性,用于配置文件大小限制,保留天数、文件名格式 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!-- 文件命名格式 -->
            <fileNamePattern>${LOG_PATH}/warn.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <!-- 文件保留最大天数 -->
            <maxHistory>7</maxHistory>
            <!-- 文件大小限制 -->
            <maxFileSize>50MB</maxFileSize>
            <!-- 文件总大小 -->
            <totalSizeCap>500MB</totalSizeCap>
        </rollingPolicy>
        <!-- 日志过滤器,将WARN相关日志过滤出来 -->
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>WARN</level>
        </filter>
    </appender>

    <!-- 摘取出ERROR级别日志输出到error.log中 -->
    <appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${ERROR_LOG_FILE}</file>
        <encoder>
            <!-- 使用默认的输出格式打印 -->
            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
            <charset>utf8</charset>
        </encoder>
        <!-- 设置 RollingPolicy 属性,用于配置文件大小限制,保留天数、文件名格式 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!-- 文件命名格式 -->
            <fileNamePattern>${LOG_PATH}/error.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
            <!-- 文件保留最大天数 -->
            <maxHistory>7</maxHistory>
            <!-- 文件大小限制 -->
            <maxFileSize>50MB</maxFileSize>
            <!-- 文件总大小 -->
            <totalSizeCap>500MB</totalSizeCap>
        </rollingPolicy>
        <!-- 日志过滤器,将ERROR相关日志过滤出来 -->
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>ERROR</level>
        </filter>
    </appender>

    <!-- 配置控制台输出 -->
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <!-- 使用默认的输出格式打印 -->
            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
            <charset>utf8</charset>
        </encoder>
    </appender>

    <!-- 配置输出级别 -->
    <root level="INFO">
        <!-- 加入控制台输出 -->
        <appender-ref ref="CONSOLE"/>
        <!-- 加入APPLICATION输出 -->
        <appender-ref ref="APPLICATION"/>
        <!-- 加入WARN日志输出 -->
        <appender-ref ref="WARN"/>
        <!-- 加入ERROR日志输出 -->
        <appender-ref ref="ERROR"/>
    </root>
</configuration>
3、使用 
@Controller
@RequestMapping("/modeler")
public class ModelerController {
   private final Logger log = LoggerFactory.getLogger(ModelerController.class);

    @Autowired
    RepositoryService repositoryService;

    @ResponseBody
    @RequestMapping("/my")
    public String index(){
        log.error("error");
        log.warn("warn");
        log.info("xinxxxxxxx");
        log.debug("debugger");
        log.trace("trace");
        
        return "my.html";
    }

}

 本地日志:

Springboot使用自带Logback 与 整合log4j 和 log4j2过程详解,spring boot,log4j,java

log4j整合

1、添加依赖

   <!--spring boot依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <!-- 排除自带的logback依赖 -->
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>


 <!--log4j 依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-log4j</artifactId>
            <version>1.3.8.RELEASE</version>
        </dependency>

2、log4j.properties文件配置

#日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL
log4j.rootLogger=info,error,info,warn,stdout
##############打印到平台的日志##################
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
#输出的信息格式
log4j.appender.stdout.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss}-[%p:%X{traceID}]-(%C:%L) %m%n
##############WARN打印的文件的日志##################
log4j.appender.warn=org.apache.log4j.DailyRollingFileAppender
log4j.appender.tracking.Encoding=utf-8
log4j.appender.warn.layout=org.apache.log4j.PatternLayout
log4j.appender.warn.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss}-[%p]-(%C:%L) %m%n
#输出文件位置
log4j.appender.warn.File=E:/log4j/warn/warn
log4j.appender.warn.DatePattern='.'yyyy-MM-dd-HH
log4j.appender.warn.Threshold=ALL
##############ERROR打印的文件的日志##################
log4j.appender.error=org.apache.log4j.DailyRollingFileAppender
log4j.appender.error.layout=org.apache.log4j.PatternLayout
log4j.appender.error.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss}-[%p]-(%C:%L) %m%n
log4j.appender.error.File=E:/log4j/error/error
log4j.appender.error.DatePattern='.'yyyy-MM-dd-HH
log4j.appender.error.Threshold=ERROR
##############INFO打印的文件的日志##################cn.com.bluemoon.bd.service.its.deg.common.Log4jMyAppender
log4j.appender.info=org.apache.log4j.DailyRollingFileAppender
log4j.appender.info.layout=org.apache.log4j.PatternLayout
log4j.appender.info.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss}-[%p:%X{traceID}]-(%C:%L) %m%n
#这个相对路径是从当前配置文件的路径开始的
log4j.appender.info.File=E:/log4j/info/info
#DataPattern规定每小时产生一个日志文档,当前小时的文日志会放在名字为info的文档里,以前的日志放在lofo.yyyy-MM-dd-HH的文档里。
log4j.appender.info.DatePattern='.'yyyy-MM-dd-HH-mm
log4j.appender.info.ImmediateFlush=true

 3、配置文件中设置日志

application.yml:

#log4j 日志输出
logging:
  config:classpath: classpath:log4j.properties #log4j.properties配置文件(log4j后缀为*.properties)  
  # path 和 name 同时启用,起作用的时name
  file:
    path: E:/LOG4J #设置存储在本地日志路径
    name: log4j #设置存储在本地日志名称(日志文件默认存储在项目根目录)

4、使用:

@Controller
@RequestMapping("/modeler")
public class ModelerController {
   private final Logger log = LoggerFactory.getLogger(ModelerController.class);

    @Autowired
    RepositoryService repositoryService;

    @ResponseBody
    @RequestMapping("/my")
    public String index(){
        log.error("error");
        log.warn("warn");
        log.info("xinxxxxxxx");
        log.debug("debugger");
        log.trace("trace");
        
        return "my.html";
    }

}

log4j2整合

1、添加依赖

 <!--spring boot依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <!-- 排除自带的logback依赖 -->
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

  <!-- 引入 log4j2 依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-log4j2</artifactId>
        </dependency>

2、log4j2.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<!--日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->
<!--Configuration后面的status,这个用于设置log4j2自身内部的信息输出,可以不设置,当设置成trace时,你会看到log4j2内部各种详细输出 -->
<!--monitorInterval:Log4j能够自动检测修改配置 文件和重新配置本身,设置间隔秒数 -->
<configuration status="WARN" monitorInterval="1800">
    <Properties>
        <!-- 日志默认存放的位置,这里设置为项目根路径下,也可指定绝对路径 -->
        <!--日志路径和名称在**.yml中设置这里无需设置(设置也不起作用)-->
       <!-- <property name="basePath">log4j2Logs</property>-->
        <!-- ${web:rootDir}是web项目根路径,java项目没有这个变量,需要删掉,否则会报异常 -->
        <!-- <property name="basePath">d:/qfxSpringMVCMybaitsDemoLogs</property> -->

        <!-- 控制台默认输出格式,"%-5level":日志级别,"%l":输出完整的错误位置,是小写的L,因为有行号显示,所以影响日志输出的性能 %t 输出产生该日志事件的线程名-->
        <property name="console_log_pattern">%d{yyyy-MM-dd HH:mm:ss.SSS}  %highlight{%-5level %l} -
            %m%n
        </property>

        <!-- 日志文件默认输出格式,不带行号输出(行号显示会影响日志输出性能);%C:大写,类名;%M:方法名;%m:错误信息;%n:换行 -->
        <property name="log_pattern">%d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] %C.%M -
            %m%n
        </property>
        <!-- 日志默认切割的最小单位 -->
        <property name="every_file_size">20MB</property>
        <!-- 日志默认输出级别 -->
        <property name="output_log_level">DEBUG</property>



        <!-- 日志默认存放路径(所有级别日志) -->
        <property name="rolling_fileName">${basePath}/all.log</property>
        <!-- 日志默认压缩路径,将超过指定文件大小的日志,自动存入按"年月"建立的文件夹下面并进行压缩,作为存档 -->
        <property name="rolling_filePattern">${basePath}/time-based-logs/%d{yyyy-MM-dd}-all.log.zip
        </property>
        <!-- 日志默认同类型日志,同一文件夹下可以存放的数量,不设置此属性则默认为7个 -->
        <property name="rolling_max">50</property>



        <!-- Info日志默认存放路径(Info级别日志) -->
        <property name="info_fileName">${basePath}/info.log</property>
        <!-- Info日志默认压缩路径,将超过指定文件大小的日志,自动存入按"年月"建立的文件夹下面并进行压缩,作为存档 -->
        <property name="info_filePattern">${basePath}/time-based-logs/%d{yyyy-MM-dd}-info.log.zip
        </property>
        <!-- Info日志默认同一文件夹下可以存放的数量,不设置此属性则默认为7个 -->
        <property name="info_max">10</property>



        <!-- Warn日志默认存放路径(Warn级别日志) -->
        <property name="warn_fileName">${basePath}/warn.log</property>
        <!-- Warn日志默认压缩路径,将超过指定文件大小的日志,自动存入按"年月"建立的文件夹下面并进行压缩,作为存档 -->
        <property name="warn_filePattern">${basePath}/time-based-logs/%d{yyyy-MM-dd}-warn.log.zip
        </property>
        <!-- Warn日志默认同一文件夹下可以存放的数量,不设置此属性则默认为7个 -->
        <property name="warn_max">10</property>

        <!-- Error日志默认存放路径(Error级别日志) -->
        <property name="error_fileName">${basePath}/error.log</property>
        <!-- Error日志默认压缩路径,将超过指定文件大小的日志,自动存入按"年月"建立的文件夹下面并进行压缩,作为存档 -->
        <property name="error_filePattern">${basePath}/time-based-logs/%d{yyyy-MM-dd}-error.log.zip
        </property>
        <!-- Error日志默认同一文件夹下可以存放的数量,不设置此属性则默认为7个 -->
        <property name="error_max">10</property>

        <!-- 控制台显示的日志最低级别 -->
        <property name="console_print_level">DEBUG</property>


        <!-- druid日志默认存放路径(Error级别日志) -->
        <property name="druid_fileName">${basePath}/druid.log</property>
        <!-- druid日志默认压缩路径,将超过指定文件大小的日志,自动存入按"年月"建立的文件夹下面并进行压缩,作为存档 -->
        <property name="druid_filePattern">${basePath}/time-based-logs/%d{yyyy-MM-dd}-druid.log.zip
        </property>
        <!-- druid日志默认同一文件夹下可以存放的数量,不设置此属性则默认为7个 -->
        <property name="druid_max">10</property>

    </Properties>

    <!--定义appender -->
    <appenders>
        <!-- 用来定义输出到控制台的配置 -->
        <Console name="Console" target="SYSTEM_OUT">
            <!-- 设置控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch) -->
            <ThresholdFilter level="${console_print_level}" onMatch="ACCEPT" onMismatch="DENY"/>
            <!-- 设置输出格式,不设置默认为:%m%n -->
            <PatternLayout pattern="${console_log_pattern}"/>
        </Console>

        <!-- 打印root中指定的level级别以上的日志到文件 -->
        <RollingFile name="RollingFile" fileName="${rolling_fileName}"
                     filePattern="${rolling_filePattern}">
            <PatternLayout pattern="${log_pattern}"/>
            <Policies>
                <!-- jvm重启就进行一次rollover-->
                <OnStartupTriggeringPolicy />
                <!-- 文件大小达到20mb进行一次rollover -->
                <SizeBasedTriggeringPolicy size="20 MB" />
                <!-- TimeBasedTriggeringPolicy是最多用到的Policy,
                interval默认值是1,根据filePattern中日期的最小单位,例如
                在该配置里是mm(分钟),设置interval="2"则每隔两分钟将发生
                一次rollover,按当前配置,具体表现就是隔两分钟得到一个log.zip。
                modulate就是让第一次rollover发生在区间边界上(即便还没到
                interval的时长),按照当前配置,首次rollover会发生在比如
                8点50分0秒,这样之后的rollover就是8点52分0秒、8点54分0秒..
                这样做的好处在于rollover的时机就变得很有规律很好预测,生成的
                文件还很整齐(假设时间最小单位为天,interval="1",那么就
                变成稳定每天0点自动rollover了。。)。还有个属性叫maxRandomDelay,
                防止很多应用在同一时间一起rollover的,暂时不理它。
                  -->
                <TimeBasedTriggeringPolicy interval="1" modulate="true" />
                <!-- DefaultRolloverStrategy,默认rollover策略。参数:
                fileIndex有两个值,max和min,就是决定生成文件是从序号大的到
                序号小的,还是从序号小的到序号大。min,计数器的起始值,
                 默认是1;max,计数器的最大值,默认是7。还有两个参数暂时不管。-->
                <DefaultRolloverStrategy max="${info_max}">
                    <Delete basePath="${basePath}/time-based-logs/" maxDepth="2">
                        <IfFileName glob="*.log.zip" />
                        <!--!Note: 这里的age必须和filePattern协调, 后者是精确到HH, 这里就要写成xH, xd就不起作用
                        另外, 数字最好>2, 否则可能造成删除的时候, 最近的文件还处于被占用状态,导致删除不成功!-->
                        <!--7天-->
                        <!--<IfLastModified age="168H" />-->
                        <!--1个月-->
                        <IfLastModified age="720H" />
                    </Delete>
                </DefaultRolloverStrategy>
            </Policies>

        </RollingFile>

        <!-- 打印INFO级别的日志到文件 -->
        <RollingFile name="InfoFile" fileName="${info_fileName}"
                     filePattern="${info_filePattern}">
            <PatternLayout pattern="${log_pattern}"/>

            <!-- 匹配INFO级别 -->
            <Filters>
                <ThresholdFilter level="WARN" onMatch="DENY" onMismatch="NEUTRAL"/>
                <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
            </Filters>
            <Policies>
                <!-- jvm重启就进行一次rollover-->
                <OnStartupTriggeringPolicy />
                <!-- 文件大小达到20mb进行一次rollover -->
                <SizeBasedTriggeringPolicy size="${every_file_size}" />
                <TimeBasedTriggeringPolicy interval="1" modulate="true" />
                <DefaultRolloverStrategy max="${info_max}"/>
            </Policies>
        </RollingFile>

        <!-- 打印WARN级别的日志到文件 -->
        <RollingFile name="WarnFile" fileName="${warn_fileName}"
                     filePattern="${warn_filePattern}">
            <PatternLayout pattern="${log_pattern}"/>
            <!-- 匹配WARN级别 -->
            <Filters>
                <ThresholdFilter level="ERROR" onMatch="DENY" onMismatch="NEUTRAL"/>
                <ThresholdFilter level="WARN" onMatch="ACCEPT" onMismatch="DENY"/>
            </Filters>
            <Policies>
                <!-- jvm重启就进行一次rollover-->
                <OnStartupTriggeringPolicy />
                <!-- 文件大小达到20mb进行一次rollover -->
                <SizeBasedTriggeringPolicy size="${every_file_size}" />
                <TimeBasedTriggeringPolicy interval="1" modulate="true" />
                <DefaultRolloverStrategy max="${info_max}"/>
            </Policies>
        </RollingFile>

        <!-- 打印ERROR级别的日志到文件 -->
        <RollingFile name="ErrorFile" fileName="${error_fileName}"
                     filePattern="${error_filePattern}">
            <PatternLayout pattern="${log_pattern}"/>
            <!-- 匹配ERROR级别 -->
            <Filters>
                <ThresholdFilter level="FATAL" onMatch="DENY" onMismatch="NEUTRAL"/>
                <ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY"/>
            </Filters>
            <Policies>
                <!-- jvm重启就进行一次rollover-->
                <OnStartupTriggeringPolicy />
                <!-- 文件大小达到20mb进行一次rollover -->
                <SizeBasedTriggeringPolicy size="${every_file_size}" />
                <TimeBasedTriggeringPolicy interval="1" modulate="true" />
                <DefaultRolloverStrategy max="${info_max}"/>
            </Policies>
        </RollingFile>

        <!--druid的日志记录追加器-->
        <RollingFile name="druidSqlRollingFile" fileName="${druid_fileName}"
                     filePattern="${druid_filePattern}">
            <PatternLayout pattern="${druid_pattern}"/>
            <Policies>
                <!-- jvm重启就进行一次rollover-->
                <OnStartupTriggeringPolicy />
                <!-- 文件大小达到20mb进行一次rollover -->
                <SizeBasedTriggeringPolicy size="${every_file_size}" />
                <TimeBasedTriggeringPolicy interval="1" modulate="true" />
                <DefaultRolloverStrategy max="${info_max}"/>
            </Policies>
        </RollingFile>
    </appenders>

    <!--然后定义logger,只有定义了logger并引入的appender,appender才会生效 -->
    <loggers>

        <!--log4j2 自带过滤日志-->
        <Logger name="org.apache.catalina.startup.DigesterFactory" level="error" />
        <Logger name="org.apache.catalina.util.LifecycleBase" level="error" />
        <Logger name="org.apache.coyote.http11.Http11NioProtocol" level="warn" />
        <logger name="org.apache.sshd.common.util.SecurityUtils" level="warn"/>
        <Logger name="org.apache.tomcat.util.net.NioSelectorPool" level="warn" />
        <Logger name="org.crsh.plugin" level="warn" />
        <logger name="org.crsh.ssh" level="warn"/>
        <Logger name="org.eclipse.jetty.util.component.AbstractLifeCycle" level="error" />
        <Logger name="org.hibernate.validator.internal.util.Version" level="warn" />
        <logger name="org.springframework.boot.actuate.autoconfigure.CrshAutoConfiguration" level="warn"/>
        <logger name="org.springframework.boot.actuate.endpoint.jmx" level="warn"/>
        <logger name="org.thymeleaf" level="warn"/>


        <!-- 设置对打印sql语句的支持 -->
        <logger name="java.sql" level="debug" additivity="false">
            <appender-ref ref="Console"/>
        </logger>

        <!--记录druid-sql的记录-->
        <logger name="druid.sql.Statement" level="debug" additivity="false">
            <appender-ref ref="druidSqlRollingFile"/>
        </logger>

        <!--建立一个默认的root的logger -->
        <root level="${output_log_level}">
            <appender-ref ref="RollingFile"/>
            <appender-ref ref="Console"/>
            <appender-ref ref="InfoFile"/>
            <appender-ref ref="WarnFile"/>
            <appender-ref ref="ErrorFile"/>
        </root>
    </loggers>
</configuration>

3、配置文件中设置日志

application.yml

#log4j2 日志输出
logging:
  config:classpath: classpath:log4j2.xml #log4j2配置文件(log4j2后缀为*.xml/*.json)
  # path 和 name 同时启用,起作用的时name
  file:
    path: E:/LOG4J2 #设置存储在本地日志路径
    name: log4j2 #设置存储在本地日志名称(日志文件默认存储在项目根目录)

4、使用:

@Controller
@RequestMapping("/modeler")
public class ModelerController {
   private final Logger log = LoggerFactory.getLogger(ModelerController.class);

    @Autowired
    RepositoryService repositoryService;

    @ResponseBody
    @RequestMapping("/my")
    public String index(){
        log.error("error");
        log.warn("warn");
        log.info("xinxxxxxxx");
        log.debug("debugger");
        log.trace("trace");

        return "my.html";
    }

}

注意:如果pom.xml中添加有 spring-boot-starter-test 依赖

必须写成如下,否则爆提示包冲突错误

        Springboot使用自带Logback 与 整合log4j 和 log4j2过程详解,spring boot,log4j,java文章来源地址https://www.toymoban.com/news/detail-803167.html

到了这里,关于Springboot使用自带Logback 与 整合log4j 和 log4j2过程详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Springboot通过log4j2+logstash整合日志到Elasticsearch中

    Springboot常用于spring-cloud中,大家在使用spring-cloud多服务的时候常常会存在一个问题,就是某个服务报错了,去捞日志的时候要一个一个服务去监控或者捞日志排查错误信息,这样很耗时耗力,Elasticsearch查询数据非常方便,如果能够将日志保存到Elasticsearch中,出现问题时根据

    2024年02月04日
    浏览(47)
  • Mybatis日志Log4j与Logback

    目录 一、Log4j与Logback的区别? 发展历史和维护 二、Slf4j 依赖 三、Logback使用 logback.xml配置文件 四、Log4j使用 五、查看日志内容 发展历史和维护 Log4j是最早的Java日志框架之一,具有较长的历史;然而Log4j 1.x版本在性能和并发性方面存在一些限制,并且已经停止维护。 Logbac

    2024年02月12日
    浏览(91)
  • logback/log4j基本配置和标签详解

    什么是logback logback 继承自 log4j,它建立在有十年工业经验的日志系统之上。它比其它所有的日志系统更快并且更小,包含了许多独特并且有用的特性。 logback.xml 首先直接上配置,我在项目过程中发现一些同时遇到需要logback文件的时候就去其他项目copy一个,改吧改吧名字就直

    2024年02月09日
    浏览(59)
  • logging.level的含义及设置 【java 日志 (logback、log4j)】

    日志级别 tracedebuginfowarnerrorfatal 常用的有:debug,info,warn,error 通常我们想设置日志级别,会用到 logging.level.root=info logging.level设置日志级别,后面跟生效的区域。root表示整个项目。 也可以写某个包,或者某个类。 例如:logging.level.com.ali.service=error。在com.ali.service包下所有

    2024年02月10日
    浏览(46)
  • flink operator 1.7 更换日志框架log4j 到logback

    更换日志框架 flink 1.18 1 消除基础flink框架log4j 添加logback jar 2 在镜像制作的时候消除: 3-2 制作flink yaml的时候添加参数

    2024年02月21日
    浏览(44)
  • 日志框架梳理(Log4j,Reload4j,JUL,JCL,SLF4J,Logback,Log4j2)

    文中代码示例获取:关注【 Qin的学习营地 】,回复【 日志框架梳理 】 在了解日志框架时总会列出一系列框架:Log4j,Reload4j,JUL,JCL,SLF4J,Logback,Log4j2,这么多框架让人感到混乱,该怎么选取、该怎么用。接下来,让我们逐步理清这些框架及之间的关系。 首先来了解日志

    2024年02月05日
    浏览(54)
  • Spring Boot整合Log4j2.xml的问题

    Spring Boot整合Log4j2.xml的时候返回以下错误: Caused by: org.apache.logging.log4j.LoggingException: log4j-slf4j-impl cannot be present with log4j-to-slf4j 进行了解决。 Spring Boot整合Log4j2.xml经过以下操作: 配置 log4j2.xml 添加到 src/main/resources 目录下 Gradle的配置:在 build.gradle 中添加: 启动应用,返回以

    2024年02月09日
    浏览(39)
  • springboot log4j配置xml实例说明

    `` Log4j有三个主要的组件: Loggers(记录器):日志类别和级别 Appenders(输出目标):日志要输出到的地方 Layouts(布局):日志以何种形式输出 Properties全局参数 可以定义springName和pattern格式,全局使用。 Loggers组件在此系统中被分为五个级别:DEBUG、INFO、WARN、ERROR和FATAL。这

    2024年01月21日
    浏览(61)
  • Java中的Log4j是什么?如何使用Log4j进行日志管理

    Log4j是一个Java日志管理工具,它可以帮助开发者在应用程序中记录日志。它是由Apache软件基金会开发和维护的,已经成为Java开发中最流行的日志管理框架之一。 Log4j可以通过多种方式记录日志,包括控制台输出、文件输出、数据库存储等。此外,Log4j还提供了多种日志级别,

    2024年02月04日
    浏览(56)
  • SpringBoot初级开发--加入Log4j进行日志管理打印(6)

      日志记录在整个java工程开发中占着很重要的比重,因为很多问题的排查需要通过日志分析才能确认。在SpringBoot中我用得最多的就是log4j这个日志框架。接下来我们具体配置log4j.   log4j定义了8个级别的log(除去OFF和ALL,可以说分为6个级别),优先级从高到低依次为:

    2024年02月11日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包