• springboot配置log4j


    第一步、进入pom配置

    <dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.11.2</version>

    </dependency>

    ps:下面logger-config.xml和log4j.properties文件放在resources根目录。

    第二步、logger-config.xml

    <?xml version="1.0" encoding="UTF-8" ?>
    <configuration>
        <!-- 引入配置文件 -->
        <property resource="log4jxxc.properties"/>
        <!-- %m输出的信息,%p日志级别,%t线程名,%d日期,%c类的全名,%i索引【从数字0开始递增】 -->
    
        <!-- 定义控制台输出格式 -->
        <!-- appender(附加):是 configuration 的子节点,是负责写日志的组件 -->
        <!--ConsoleAppender :是将信息输出到控制台-->
        <appender name="console" class="ch.qos.logback.core.ConsoleAppender" >
            <encoder>
                <!-- patter(模式)-->
                <!--  %d{pattern}日期
                        %m或者%msg为信息
                        %M为method
                        %L为行号
                        %thread线程名称
                        %n换行
                        %-5level
    
                        %C{length} |  %class{length}
    
                        %c {length }  |  %lo {length }   |  %logger {length }
                        输出日志的logger名,可有一个整形参数,功能是缩短logger名,设置为0表示只输入logger最右边点符号之后的字符串。 Conversion specifier Logger name Result
                -->
                <pattern>${log.txtPatternPolicy}</pattern>
                <charset>UTF-8</charset>
            </encoder>
        </appender>
    
        <!-- 配置log 文件生成策略 -->
        <!-- RollingFileAppender: 符合定义条件后,将会重新新建文件进行记录 -->
        <appender name="server" class="ch.qos.logback.core.rolling.RollingFileAppender">
    
            <File>${log.fileBackupPath}${log.fileName}</File>
            <!-- TimeBasedRollingPolicy : 是一种基本的滚动策略,会根据时间来进行制定策略,既负责滚动,也负责触发-->
            <rollingPolicy  class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
                <!-- fileNamePattern: 文件命名模式 -->
                <fileNamePattern>${log.fileBackupPath}${log.backupFileNamePolicy}</fileNamePattern>
                <!-- 文件存在时间 -->
                <maxFileSize>${log.fileSize}</maxFileSize>
                <maxHistory>${log.history}</maxHistory>
                <totalSizeCap>${log.totalSize}</totalSizeCap>
            </rollingPolicy >
            <encoder>
                <!-- pattern : 用来定义log 日志文件的输入格式 -->
                <pattern>
                    ${log.txtPatternPolicy}
                </pattern>
                <charset>UTF-8</charset>
            </encoder>
        </appender>
    
    
        <logger name="org.hibernate.type.descriptor.sql.BasicBinder" level="TRACE" />
        <logger name="org.hibernate.type" level="TRACE" />
        <logger name="org.hibernate.type.descriptor.sql.BasicExtractor" level="DEBUG" />
        <logger name="org.hibernate.engine.QueryParameters" level="DEBUG" />
        <logger name="org.hibernate.engine.query.HQLQueryPlan" level="DEBUG" />
    
        <!-- 日志级别 -->
        <!-- 级别依次为【从高到低】:FATAL > ERROR > WARN > INFO > DEBUG > TRACE  -->
        <root level="INFO">
            <appender-ref ref="console"/>
            <appender-ref ref="server"/>
        </root>
    
    </configuration>

    第三步、log4j.properties 资源文件

    ######################   log 配置  ######################
    ######################   log 配置 
    #日志文件输出路径 可自定义
    log.fileBackupPath=/usr/local/project/
    log.history=30
    log.fileSize=10mb
    log.totalSize=100mb
    #当前日志文件名称
    log.fileName=log4j-test.log
    #备份日志文件命名策略
    log.backupFileNamePolicy=test-%d{yyyy-MM-dd}.%i.log
    #日志文本生成策略
    # d:时间 C:类名称 M:方法名称 L:行号 m:消息 n:换行
    log.txtPatternPolicy=%d{yyyy-MM-dd HH:mm:ss:SSS} [%thread] %-5level %C{36} %M %L - %m %n

    第4步、修改application.yml,加上以下配置

    logging:
    config: classpath:logger-config.xml

     第五步,使用

    在需要打印日志的类中创建静态变量

    private static final Logger logger = LoggerFactory.getLogger(ApiUserController.class);

    然后就可在方法中调用例如:
    logger.info("这是日志。。。");

    完成。。。

    不管什么时候都别忘了最初的梦想
  • 相关阅读:
    Manachar’s Algorithm
    脑裂 CAP PAXOS 单元化 网络分区 最终一致性 BASE
    Scheduling Multithreaded Computations by Work Stealing
    QQ好友状态,QQ群友状态,究竟是推还是拉? 网页端收消息,究竟是推还是拉?
    支持 gRPC 长链接,深度解读 Nacos 2.0 架构设计及新模型
    0到1:微信后台系统的演进之路 原创 张文瑞 InfoQ 2016-01-14
    救火必备!问题排查与系统优化手册
    如何紧急定位线上内存泄露? 原创 朱云锋 阿里技术 2019-12-20
    如何应对C语言内存泄露! 华为开发者社区 2020-09-29
    一次I/O问题引发的P0重大故障[改版重推] 原创 二马读书 二马读书 8月16日 这是前段时间发的一篇文章,很多读者反馈,文章没有揭示故障发生的详细
  • 原文地址:https://www.cnblogs.com/hanfengyeqiao/p/13416249.html
Copyright © 2020-2023  润新知