springboot添加日志框架
Posted 梓铭君
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springboot添加日志框架相关的知识,希望对你有一定的参考价值。
日常搭建springboot项目,使用springboot自带的日志框架即可,spirngboot自带的日志框架为:logback。
logback使用
maven依赖导入:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency>
配置文件配置:
在src/main/resources 添加日志配置文件,其中 logback配置文件命名为:logback-spring.xml, logback-spring.groovy, logback.xml, logback.groovy。
springboot推荐使用带-spring后缀的配置文件。
或者可以在application.properties配置文件中指定日志文件地址(在启动不同的配置文件时可以使用,平时一般不用):
logging.config=classpath:logging-config.xml
日志文件具体内容:
<?xml version="1.0" encoding="UTF-8"?> <!--配置一天一个日志文件,info信息存在一个文件中,error信息存在一个文件中--> <configuration> <!--日志文件输出路径--> <property name="LOG_HOME" value="log"/> <property name="PATTERN_VALUE" value="%red(%d{yyyy-MM-dd HH:mm:ss.SSS}) [ %thread ] - %highlight([ %-5level ]) %green([ %logger{50} : %line ]) - %boldMagenta(%msg%n)"/> <!--配置控制台打印信息--> <appender name="ConsoleLog" class="ch.qos.logback.core.ConsoleAppender"> <layout class="ch.qos.logback.classic.PatternLayout"> <!--格式化输出:%d:表示日期 %thread:表示线程名 %-5level:级别从左显示5个字符宽度 %msg:日志消息 %n:是换行符--> <pattern> ${PATTERN_VALUE} </pattern> </layout> </appender> <!--配置info文件--> <appender name="InfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender"> <filter class="ch.qos.logback.classic.filter.LevelFilter"> <level>ERROR</level> <!--过来命中就过滤掉--> <onMatch>DENY</onMatch> <!--没有命中就接受--> <onMismatch>ACCEPT</onMismatch> </filter> <encoder> <charset>UTF-8</charset> <pattern> ${PATTERN_VALUE} </pattern> </encoder> <!--滚动策略--> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!--路径--> <fileNamePattern>${LOG_HOME}/info.%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern> <!--保存的时间(天数)--> <maxHistory>7</maxHistory> <!--日志文件的总大小--> <totalSizeCap>10GB</totalSizeCap> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <maxFileSize>100MB</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> </rollingPolicy> </appender> <!--配置error文件--> <appender name="ErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender"> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>ERROR</level> </filter> <encoder> <charset>UTF-8</charset> <pattern> ${PATTERN_VALUE} </pattern> </encoder> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${LOG_HOME}/error.%d.log</fileNamePattern> <maxHistory>15</maxHistory> <totalSizeCap>1GB</totalSizeCap> </rollingPolicy> </appender> <!--加载配置项--> <root level="INFO"> <appender-ref ref="ConsoleLog"/> <appender-ref ref="InfoLog"/> <appender-ref ref="ErrorLog"/> </root> </configuration>
彩蛋:
日志文件可以控制输出日志颜色,添加配置:%red(%d{yyyy-MM-dd HH:mm:ss.SSS}) 可以实现功能。具体颜色可以自定义切换。
%red(%d{yyyy-MM-dd HH:mm:ss.SSS})
log4j使用
maven依赖导入:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j</artifactId> <version>1.3.8.RELEASE</version> </dependency>
配置文件配置:
在src/main/resources 添加日志配置文件,其中 logback配置文件命名为:log4j-spring.properties, log4j-spring.xml, log4j.properties, log4j.xml。
springboot推荐使用带-spring后缀的配置文件。
或者可以在application.properties配置文件中指定日志文件地址(在启动不同的配置文件时可以使用,平时一般不用):
logging.config=classpath:logging-config.xml
日志文件具体内容
log4j.rootLogger=INFO,CONSOLE,day log4j.appender.logfile.encoding=GBK #u8F93u51FAu5230u63A7u5236u53F0 log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.CONSOLE.Threshold=INFO log4j.appender.CONSOLE.Target=System.out log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout log4j.appender.CONSOLE.layout.ConversionPattern=[%p][%d{yyyy-MM-dd HH:mm:ss}][%l] %m%n #u6BCFu5929u751Fu6210u4E00u4E2Au65E5u5FD7u6587u4EF6 log4j.appender.day=org.apache.log4j.DailyRollingFileAppender log4j.appender.day.File=logs/log.log log4j.appender.day.Threshold=INFO log4j.appender.day.DatePattern=‘.‘yyyy-MM-dd log4j.appender.day.MaxBackupIndex=30 log4j.appender.day.Append=true log4j.appender.day.layout=org.apache.log4j.PatternLayout log4j.appender.day.layout.ConversionPattern=[%p][%d{yyyy-MM-dd HH:mm:ss}][%l] %m%n # u6570u636Eu5E93u8F93u51FA #log4j.appender.jdbc=org.apache.log4j.jdbc.JDBCAppender #log4j.appender.jdbc.driver=com.mysql.jdbc.Driver #log4j.appender.jdbc.URL=jdbc:mysql:// #log4j.appender.jdbc.user= #log4j.appender.jdbc.password= #log4j.appender.jdbc.sql=insert into log_icecoldmonitor(level,category,thread,time,location,note) values(‘%p‘,‘%c‘,‘%t‘,‘%d{yyyy-MM-dd HH:mm:ss:SSS}‘,‘%l‘,‘%m‘) # u5F00u53D1u670Du6570u636Eu5E93 #log4j.appender.jdbc=org.apache.log4j.jdbc.JDBCAppender #log4j.appender.jdbc.driver=com.mysql.jdbc.Driver #log4j.appender.jdbc.URL=jdbc:mysql://bj-cdb-4nedn1d3.sql.tencentcdb.com:63994/easyrecord?useSSL=false #log4j.appender.jdbc.user=easyrecorddev #log4j.appender.jdbc.password=easyrecorddev!@# #log4j.appender.jdbc.sql=insert into log_icecoldmonitor(level,category,thread,time,location,note) values(‘%p‘,‘%c‘,‘%t‘,‘%d{yyyy-MM-dd HH:mm:ss:SSS}‘,‘%l‘,‘%m‘)
以上是关于springboot添加日志框架的主要内容,如果未能解决你的问题,请参考以下文章
docker安装ELK 收集springboot日志(方法1)
使用实体框架迁移时 SQL Server 连接抛出异常 - 添加代码片段