【Java开发工具】logback——日志配置
日志配置——基础知识日志——levelDEBUG:log.debug放的的数据信息,通常是程序调试的细节WARN:log.warn放入的数据信息,通常是警告性的一些数据INFO:log.info放入的数据信息,通常是实体数据的展示ERROR:log.error放入的数据信息,通常是异常后对参数的展示FATAL:log.fatal放的数据信息,通常是日志——appenderorg.apache.lo
日志配置——基础知识
日志——level
DEBUG:log.debug放的的数据信息,通常是程序调试的细节
WARN:log.warn放入的数据信息,通常是警告性的一些数据
INFO:log.info放入的数据信息,通常是实体数据的展示
ERROR:log.error放入的数据信息,通常是异常后对参数的展示
FATAL:log.fatal放的数据信息,通常是
日志——appender
org.apache.log4j.ConsoleAppender(控制台)
org.apache.log4j.FileAppender(文件)
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方,比如kafka)
日志——环境变量
%d表示日期,
%thread: 表示线程名
%level:日志级别
%msg:日志消息
%logger: Java类名(含包名,这里设定了36位,若超过36位,包名会精简为类似a.b.c.JavaBean)
%line: Java类的行号
日志配置——完整配置
新建——以下两个文件
springboot的mvc内置日志插件,所以导入了spirngboot的web包后自动带有日志功能

配置(1)——application.yml
logging:
config: classpath:logback.xml
file:
path: /logs/springcloud-gateway
配置(2)——logback.xml
注意,之所以测试环境为了排查问题方便,所以我们直接配置全部等级的whole输出以便于将堆栈信息数据到日志中
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<contextName>logback</contextName>
<!--
(1)加入环境变量
(1.1)log.project:spring当前的应用名(引用spirng配置文件的变量)
(1.2)log.path:日志地址(写死静态值)
(1.3)ERROR_FILE_PATH:错误日志输出地址
(1.4)WHOLE_FILE_PATH:全部日志输出地址
(1.5)LOG_ENCODER_PATTERN:文件日志打印格式
(1.5)CONSOLE_LOG_PATTERN:控制台日志打印格式
-->
<springProperty scope="context" name="log.project" source="spring.application.name"/>
<springProperty scope="context" name="log.path" source="logging.file.path"/>
<property name="ERROR_FILE_PATH" value="${log.path}/${log.project}.error.log"/>
<property name="WHOLE_FILE_PATH" value="${log.path}/${log.project}.WHOLE_FILE.log" />
<property name="LOG_ENCODER_PATTERN" value="
%d{yyyy-MM-dd HH:mm:ss.SSS} ||| [ %-5level] |||
${hostName} ||| [%thread] ||| [%X{requestId}] ||| %logger{36} |||- %msg%n"
></property>
<property name="CONSOLE_LOG_PATTERN" value="${
CONSOLE_LOG_PATTERN:-
%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint}
%clr(${LOG_LEVEL_PATTERN:-%5p})
%clr(${PID:- }){magenta} %clr(---){faint}
%clr([%15.15t]){faint}
%clr(%-40.40logger{39}){cyan}
%clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}
}"/>
<!-- 彩色日志依赖的渲染类 -->
<conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
<conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
<conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
/>
<!--
(2)日志插件罗列
-->
<!--
(2.1)控制台日志插件
-->
<appender name="console"
class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
<charset>UTF-8</charset> <!-- 此处设置字符集 -->
</encoder>
</appender>
<!--
(2.2)文件插件————输出所有等级的日志(测试环境)
-->
<appender name="WHOLE_FILE"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--(2.2.1)日志文件位置配置-->
<file>${WHOLE_FILE_PATH}</file>
<!--(2.2.2)日志文件输出格式配置-->
<encoder>
<pattern>${LOG_ENCODER_PATTERN}</pattern>
</encoder>
<!--(2.2.3)日志文件滚动策略配置-->
<!-- 滚动策略 -->
<rollingPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${log.path}/${log.project}.WHOLE_FILE.logback.log.%d{yyyy-MM-dd}.%i
</fileNamePattern>
<MaxHistory>90</MaxHistory><!--日志文件保留天数-->
<maxFileSize>100MB</maxFileSize><!--日志块的大小,超出则按索引递增-->
</rollingPolicy>
</appender>
<!--
(2.3)文件插件————输出错误等级的日志
-->
<appender name="ERROR_FILE"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--(3.3.1)日志文件位置配置-->
<file>${ERROR_FILE_PATH}</file>
<!--(3.3.2)日志插件作用域配置-->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
<!--(3.3.2)日志文件输出格式配置-->
<encoder>
<pattern>${LOG_ENCODER_PATTERN}</pattern>
</encoder>
<!--(3.3.2)日志文件滚动策略配置-->
<!-- 滚动策略 -->
<rollingPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${log.path}/${log.project}.error.logback.log.%d{yyyy-MM-dd}.%i</fileNamePattern>
<MaxHistory>90</MaxHistory><!--日志文件保留天数-->
<maxFileSize>100MB</maxFileSize><!--日志块的大小,超出则按索引递增-->
</rollingPolicy>
</appender>
<!--
(3)日志插件引用
-->
<!--
(3.1)所有环境共用配置
一般来讲控制台我们需要输出info级别以下的信息即可
-->
<root level="info">
<appender-ref ref="console"/>
</root>
<!--(3.2)测试环境配置-->
<springProfile name="test">
<appender-ref ref="WHOLE_FILE" />
<appender-ref ref="ERROR_FILE" />
</springProfile>
<!--(3.3)生产环境配置-->
<springProfile name="prod">
<appender-ref ref="ERROR_FILE" />
</springProfile>
<!--
(4)特殊包的配置
指定一个包名独立给这些包设置登记或者日志配置
-->
<logger name="org.springframework.web" level="info"/>
<logger name="org.springframework.scheduling.annotation.ScheduledAnnotationBeanPostProcessor" level="INFO"/>
</configuration>
日志配置——自定义appender (待完善)
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)