双浩建设网站,推广软件赚钱违法吗,银川网站设计公司,大专网站建设资料文章目录springboot集成lomback.xml 描述在yml中定义的一些配置信息创建logback-spring.xml文件logback-spring.xml配置如下#xff1a;**log4j入门配置****详细介绍配置信息的#xff1a;****自动清理导出的日志文件**springboot集成lomback.xml 描述
首先在resouces目录下…
文章目录springboot集成lomback.xml 描述在yml中定义的一些配置信息创建logback-spring.xml文件logback-spring.xml配置如下**log4j入门配置****详细介绍配置信息的****自动清理导出的日志文件**springboot集成lomback.xml 描述
首先在resouces目录下创建一个logback-spring.xml文件为什么叫这个名字呢
是因为logback默认的会从资源目录读取这个文件
配置xml文件中需要用到两个标签。
springProperty和springProfile标签都是用于读取ymlyaml配置文件的。
在yml中定义的一些配置信息
server:port: 9137tomcat:uri-encoding: UTF-8max-threads: 100 #最大并发数max-connections: 200 #最大连接数accepCount: 50 #等待数
#自定义的日志配置参数
logging:path: D:\xxx\ldmall-product-service\src\main\resources\logs #保存日志lv: INFO # 控制台日志输出级别dateSize: 1 # 日志保存天数
#邮箱配置参数
email:#主机smtpHost: smtp.qq.com#端口(465或587)smtpPort: 465username: xxxqq.compassword: xxxxSSL: trueemail_from: fromqq.comemail_to: toqq.com创建logback-spring.xml文件
同事记得在resources目录下创建一个logs文件夹用于存储项目运行生成的日志文件 logback-spring.xml配置如下
我这里把发送邮箱注释掉了
提示
由于logback-spring.xml先于application.yml被系统加载所以想要引用application.yml文件中的数据需要加入标签引入后怎么获取到呢比如想要获取日志保存天数就需要引入后面的引用就只需要${log.dateSize}就可以了中括号里面的值是springProperty 的name值。springProfile对应的是application.yml文件中的spring.profiles.active的值。配置文件中的邮件密码不是邮箱登录密码而是客户端授权密码如何获取查询QQ邮箱登陆第三方客户端获取授权码就可以了。
?xml version1.0 encodingUTF-8?
!-- 日志级别从低到高分为TRACE DEBUG INFO WARN ERROR FATAL如果设置为WARN则低于WARN的信息都不会输出 --
!-- scan:当此属性设置为true时配置文件如果发生改变将会被重新加载默认值为true --
!-- scanPeriod:设置监测配置文件是否有修改的时间间隔如果没有给出时间单位默认单位是毫秒。当scan为true时此属性生效。默认的时间间隔为1分钟。 --
!-- debug:当此属性设置为true时将打印出logback内部日志信息实时查看logback运行状态。默认值为false。 --
configuration scantrue scanPeriod60 seconds debugfalsecontextNamelogback/contextName!--读取yml获取配置的信息--property resourceapplication.yml/springProperty scopecontext namelog.path sourcelogging.path/springProperty scopecontext namelog.lv sourcelogging.lv/springProperty scopecontext namelog.dateSize sourcelogging.dateSize/!--输出到控制台--appender nameconsole classch.qos.logback.core.ConsoleAppender!--此日志appender是为开发使用只配置最底级别控制台输出的日志级别是大于或等于此级别的日志信息--filter classch.qos.logback.classic.filter.ThresholdFilterlevel${log.lv}/level/filterencoderpattern%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n/pattern!--编码--charsetutf-8/charset/encoder/appender!--输出到debug--appender namedebug classch.qos.logback.core.rolling.RollingFileAppender!-- 正在记录的日志文件的路径及文件名 --file${log.path}/logback-debug.log/file!-- 日志记录器的滚动策略按日期按大小记录 --rollingPolicy classch.qos.logback.core.rolling.TimeBasedRollingPolicyfileNamePattern${log.path}/logback-debug-%d{yyyy-MM-dd}_%i.log/fileNamePatterntimeBasedFileNamingAndTriggeringPolicy classch.qos.logback.core.rolling.SizeAndTimeBasedFNATPmaxFileSize100MB/maxFileSize/timeBasedFileNamingAndTriggeringPolicy!--日志文件保留天数--maxHistory15/maxHistory/rollingPolicyappendtrue/appendencoderpattern%d{yyyy-MM-dd HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n/pattern!--编码--charsetutf-8/charset/encoderfilter classch.qos.logback.classic.filter.LevelFilter!-- 只打印DEBUG日志 --levelDEBUG/levelonMatchACCEPT/onMatchonMismatchDENY/onMismatch/filter/appender!--输出到info--appender nameinfo classch.qos.logback.core.rolling.RollingFileAppender!-- 正在记录的日志文件的路径及文件名 --file${log.path}/logback-info.log/file!-- 日志记录器的滚动策略按日期按大小记录 --rollingPolicy classch.qos.logback.core.rolling.TimeBasedRollingPolicyfileNamePattern${log.path}/logback-info-%d{yyyy-MM-dd}_%i.log/fileNamePatterntimeBasedFileNamingAndTriggeringPolicy classch.qos.logback.core.rolling.SizeAndTimeBasedFNATPmaxFileSize100MB/maxFileSize/timeBasedFileNamingAndTriggeringPolicy!--日志文件保留天数--maxHistory${log.dateSize}/maxHistory/rollingPolicyappendtrue/appendencoderpattern%d{yyyy-MM-dd HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n/pattern!--编码--charsetutf-8/charset/encoderfilter classch.qos.logback.classic.filter.LevelFilter!-- 只打印INFO日志 --levelINFO/levelonMatchACCEPT/onMatchonMismatchDENY/onMismatch/filter/appender!--输出到warn--appender namewarn classch.qos.logback.core.rolling.RollingFileAppender!-- 正在记录的日志文件的路径及文件名 --file${log.path}/logback-warn.log/file!-- 日志记录器的滚动策略按日期按大小记录 --rollingPolicy classch.qos.logback.core.rolling.TimeBasedRollingPolicyfileNamePattern${log.path}/logback-warn-%d{yyyy-MM-dd}_%i.log/fileNamePatterntimeBasedFileNamingAndTriggeringPolicy classch.qos.logback.core.rolling.SizeAndTimeBasedFNATPmaxFileSize100MB/maxFileSize/timeBasedFileNamingAndTriggeringPolicy!--日志文件保留天数--maxHistory${log.dateSize}/maxHistory/rollingPolicyappendtrue/appendencoderpattern%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n/patterncharsetutf-8/charset/encoderfilter classch.qos.logback.classic.filter.LevelFilter!-- 只打印WARN日志 --levelWARN/levelonMatchACCEPT/onMatchonMismatchDENY/onMismatch/filter/appender!--输出到error--appender nameerror classch.qos.logback.core.rolling.RollingFileAppender!-- 正在记录的日志文件的路径及文件名 --file${log.path}/logback-error.log/file!-- 日志记录器的滚动策略按日期按大小记录 --rollingPolicy classch.qos.logback.core.rolling.TimeBasedRollingPolicyfileNamePattern${log.path}/logback-error-%d{yyyy-MM-dd}_%i.log/fileNamePatterntimeBasedFileNamingAndTriggeringPolicy classch.qos.logback.core.rolling.SizeAndTimeBasedFNATPmaxFileSize100MB/maxFileSize/timeBasedFileNamingAndTriggeringPolicy!--日志文件保留天数--maxHistory${log.dateSize}/maxHistory/rollingPolicyappendtrue/appendencoderpattern%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n/patterncharsetutf-8/charset/encoderfilter classch.qos.logback.classic.filter.LevelFilter!-- 只打印ERROR日志 --levelERROR/levelonMatchACCEPT/onMatchonMismatchDENY/onMismatch/filter/appender!-- lt;!ndash;邮件配置ndash;gt;springProperty scopecontext namesmtpHost sourceemail.smtpHost/lt;!ndash; SMTP server的端口地址。 ndash;gt;springProperty scopecontext namesmtpPort sourceemail.smtpPort/lt;!ndash; 发送邮件账号 ndash;gt;springProperty scopecontext nameusername sourceemail.username/lt;!ndash; 发送邮件密码此密码客户端授权密码不是邮箱登录密码 ndash;gt;springProperty scopecontext namepassword sourceemail.password/lt;!ndash; 如果设置为trueappender将会使用SSL连接到日志服务器。默认值false ndash;gt;springProperty scopecontext nameSSL sourceemail.SSL/lt;!ndash; 指定收件人邮箱可设置多个邮箱收件人账号需以逗号隔开 ndash;gt;springProperty scopecontext nameemail_to sourceemail.email_to/lt;!ndash; 指定发件人名称。 ndash;gt;springProperty scopecontext nameemail_from sourceemail.email_from/lt;!ndash; 标题 ndash;gt;property nameemail_subject value【System Error】: %msg /lt;!ndash; 邮件发送的appender ndash;gt;appender nameEmail classch.qos.logback.classic.net.SMTPAppendersmtpHost${smtpHost}/smtpHostsmtpPort${smtpPort}/smtpPortusername${username}/usernamepassword${password}/passwordasynchronousSendingfalse/asynchronousSendingSSL${SSL}/SSLto${email_to}/tofrom${email_from}/fromsubject${email_subject}/subjectlt;!ndash; html格式 ndash;gt;layout classch.qos.logback.classic.html.HTMLLayoutPattern%date - %level [%thread] %logger{50} %line %message/Pattern/layoutlt;!ndash; 等级过滤器指定ERROR级别发送 ndash;gt;filter classch.qos.logback.classic.filter.LevelFilterlevelERROR/levelonMatchACCEPT/onMatchonMismatchDENY/onMismatch/filterlt;!ndash; 每个电子邮件只发送一个日志条目 ndash;gt;cyclicBufferTracker classch.qos.logback.core.spi.CyclicBufferTrackerbufferSize1/bufferSize/cyclicBufferTracker/appender--!--不同环境分别设置对应的日志输出节点 --!--springProfile对应的是application.yml文件中的spring.profiles.active的值--!--开发--springProfile namedevroot leveldebugappender-ref refconsole /appender-ref refinfo /appender-ref refwarn /appender-ref referror //root/springProfile!--测试--springProfile nametestroot levelwarnappender-ref refconsole /appender-ref refwarn /appender-ref referror /!--appender-ref refEmail /--/root/springProfile!--生产环境--springProfile nameprodroot levelinfoappender-ref refconsole /appender-ref refdebug /appender-ref refinfo /appender-ref refwarn /appender-ref referror /!-- appender-ref refEmail /--/root/springProfile/configurationlog4j入门配置
一般配置三种输出
第一种是控制台输出
第二种是将日志输出到一个文件
第三种是将报错的信息单独输出到一个文件
依赖 spring-boot-start本身包含了log4j的包可以不加。也可以自己指定版本。 !--log4j日志 --dependencygroupIdcommons-logging/groupIdartifactIdcommons-logging/artifactIdversion1.2/version/dependencydependencygroupIdlog4j/groupIdartifactIdlog4j/artifactIdversion1.2.17/version/dependency!--log4j--创建log4j.properties文件配置如下
### set log levels ###
log4j.rootLogger debug , stdout , D , E### 输出到控制台 ###
log4j.appender.stdout org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target System.out
log4j.appender.stdout.Threshold INFO
log4j.appender.stdout.layout org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern %d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n### 输出到日志文件 ###
log4j.appender.D org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File logs/log.log
log4j.appender.D.Append true
log4j.appender.D.Threshold DEBUG
log4j.appender.D.layout org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n### 保存异常信息到单独文件 ###
log4j.appender.E org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File logs/error.log
log4j.appender.E.Append true
log4j.appender.E.Threshold ERROR
log4j.appender.E.layout org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
也可以用xml的方式配置。
最终输出
控制台 设置成了INFO级别 日志输出 设置成了INFO级别
错误日志输出 设置成了ERROR级别 详细介绍配置信息的
###配置日志根Logger
log4j.rootLoggerDEBUG,stdout,file
#ERROR 为严重错误 主要是程序的错误
#WARN 为一般警告比如session丢失
#INFO 为一般要显示的信息比如登录登出
#DEBUG 为程序的调试信息
log4j.additivity.org.apachetrue###配置日志信息输出目的地Appender
log4j.appender.stdoutorg.apache.log4j.ConsoleAppender
#org.apache.log4j.ConsoleAppender控制台
#org.apache.log4j.FileAppender文件
#org.apache.log4j.DailyRollingFileAppender每天产生一个日志文件
#org.apache.log4j.RollingFileAppender文件大小到达指定尺寸的时候产生一个新的文件
#org.apache.log4j.WriterAppender将日志信息以流格式发送到任意指定的地方
#log4j.appender.error.TargetSystem.out
###输出ERROR级别以上的日志
log4j.appender.stdout.thresholdINFO
###配置日志信息的格式布局
log4j.appender.stdout.layoutorg.apache.log4j.PatternLayout
#org.apache.log4j.HTMLLayout以HTML表格形式布局
#org.apache.log4j.PatternLayout可以灵活地指定布局模式
#org.apache.log4j.SimpleLayout包含日志信息的级别和信息字符串
#org.apache.log4j.TTCCLayout包含日志产生的时间、线程、类别等等信息
###配置日志打印的格式格式化日志信息
log4j.appender.stdout.layout.ConversionPattern%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n#%m 输出代码中指定的消息
#%p 输出优先级即DEBUGINFOWARNERRORFATAL
#%r 输出自应用启动到输出该log信息耗费的毫秒数
#%c 输出所属的类目通常就是所在类的全名
#%t 输出产生该日志事件的线程名
#%n 输出一个回车换行符Windows平台为“\r\n”Unix平台为“\n”
#%d 输出日志时间点的日期或时间默认格式为ISO8601也可以在其后指定格式比如%d{yyy MMM dd HH:mm:ss , SSS}
#%l 输出日志事件的发生位置包括类目名、发生的线程以及在代码中的行数
#log4j.appender.fileorg.apache.log4j.RollingFileAppender
log4j.appender.fileorg.apache.log4j.DailyRollingFileAppender
log4j.appender.file.layoutorg.apache.log4j.PatternLayout
log4j.appender.file.DatePattern.yyyy-MM-dd-HH-mm
# .yyyy-MM每月
# .yyyy-ww每周
# .yyyy-MM-dd每天
# .yyyy-MM-dd-a每天两次
# .yyyy-MM-dd-HH每小时
# .yyyy-MM-dd-HH-mm每分钟
#log4j.appender.file.MaxFileSize1MB
###滚动文件的最大数
#log4j.appender.file.MaxBackupIndex8
log4j.appender.file.layout.ConversionPattern%d{yyyy-MM-dd HH:mm:ss} [%-5p](%-30c{1}) [TxId : %X{PtxId} , SpanId : %X{PspanId}] [ET:%X{ENV_TYPE},AN:%X{APP_NAME},SN:%X{SERVICE_NAME},CN:%X{CONTAINER_NAME},CI:%X{CONTAINER_IP}] %m%n
log4j.appender.file.ThresholdDEBUG
###将消息增加到指定文件中,false指将消息覆盖指定的文件内容
log4j.appender.file.appendtrue
###日志的保存位置
#log4j.appender.file.FileE:/logs/file-debug-log.log
log4j.appender.file.Filelogs/file-debug-log.log
###每天产生一个日志文件
#log4j.appender.fileorg.apache.log4j.DailyRollingFileAppender
#log4j.appender.file.layoutorg.apache.log4j.PatternLayout
#log4j.appender.file.maxFileSize100
#log4j.appender.file.maxBackupIndex5
#log4j.appender.file.layout.ConversionPattern%d{yyyy-MM-dd HH:mm:ss} [%-5p](%-30c{1}) [TxId : %X{PtxId} , SpanId : %X{PspanId}] [ET:%X{ENV_TYPE},AN:%X{APP_NAME},SN:%X{SERVICE_NAME},CN:%X{CONTAINER_NAME},CI:%X{CONTAINER_IP}] %m%n
#log4j.appender.file.ThresholdDEBUG
#log4j.appender.file.appendtrue
#log4j.appender.file.FileE:/logs/debug-log.log自动清理导出的日志文件
log4j.rootLoggerINFO,stdout,debug,error#输出到控制台
log4j.appender.stdoutorg.apache.log4j.ConsoleAppender
log4j.appender.stdout.targetSystem.out
log4j.appender.stdout.layoutorg.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern%d{yyyy-MM-dd HH:mm:ss,SSS} %p [%t] %C.%M(%L) | %m%n#输出DEBUG级别以上的日志到文件
log4j.appender.debugorg.apache.log4j.RollingFileAppender
log4j.appender.debug.ThresholdDEBUG
log4j.appender.debug.File./logs/log.txt
log4j.appender.debug.layoutorg.apache.log4j.PatternLayout
log4j.appender.debug.layout.ConversionPattern%d{yyyy-MM-dd HH:mm:ss} [%5p] - %c -%F(%L) -%m%n
#最大文件50MB
log4j.appender.debug.MaxFileSize50MB
#备份15个文件
log4j.appender.debug.MaxBackupIndex15
log4j.appender.debug.EncodingUTF-8#输出error级别以上的日志到文件
log4j.appender.errororg.apache.log4j.RollingFileAppender
log4j.appender.error.ThresholdERROR
log4j.appender.error.File./logs/error.txt
log4j.appender.error.layoutorg.apache.log4j.PatternLayout
log4j.appender.error.layout.ConversionPattern%d{yyyy-MM-dd HH:mm:ss} [%5p] - %c -%F(%L) -%m%n
#最大文件50MB
log4j.appender.error.MaxFileSize50MB
#备份15个文件
log4j.appender.error.MaxBackupIndex15
log4j.appender.error.EncodingUTF-8将日志发送到邮件或者存储到数据库可参考
https://blog.csdn.net/zzq900503/article/details/31411403
https://blog.csdn.net/zzq900503/article/details/87629782