网站标题特效,win7 asp.net网站架设,织梦网站安装视频教程,怎样把网站做的漂亮logback集成
springboot 集成了logback日志系统#xff0c;默认读取logbak配置文件#xff0c;配置文件的名称默认#xff1a;logback-spring.xml#xff0c;如果想自定义配置文件的名称#xff0c;需要在application.yml配置文件中作如下配置来指定logback的配置文件
l…logback集成
springboot 集成了logback日志系统默认读取logbak配置文件配置文件的名称默认logback-spring.xml如果想自定义配置文件的名称需要在application.yml配置文件中作如下配置来指定logback的配置文件
logging:config: classpath:logback.xmlappender配置详解 appender 的种类
ConsoleAppender把日志添加到控制台FileAppender把日志添加到文件RollingFileAppender滚动记录文件先将日志记录到指定文件当符合某个条件时将日志记录到其他文件。它是FileAppender的子类是常用的一种
logback-spring.xml
?xml version1.0 encodingUTF-8?
configurationproperty nameLOG_CONTEXT_NAME valuechongba/!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径--property nameLOG_HOME valuelogs/${LOG_CONTEXT_NAME} /!-- 定义日志上下文的名称 --contextName${LOG_CONTEXT_NAME}/contextName!-- 控制台输出 --appender nameconsole classch.qos.logback.core.ConsoleAppenderencoder classch.qos.logback.classic.encoder.PatternLayoutEncoder!--格式化输出%d表示日期%thread表示线程名%-5level级别从左显示5个字符宽度%msg日志消息%n是换行符--pattern%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{56}.%method:%L - %msg%n/patterncharsetutf-8/charset/encoderfilter classch.qos.logback.classic.filter.ThresholdFilterlevelINFO/level/filter/appender!--info日志统一输出到这里--appender namefile.info classch.qos.logback.core.rolling.RollingFileAppenderPrudenttrue/PrudentrollingPolicy classch.qos.logback.core.rolling.TimeBasedRollingPolicy!--日志文件输出的文件名按小时生成--FileNamePattern${LOG_HOME}/%d{yyyy-MM-dd}/info/info.%d{yyyy-MM-dd-HH}.%i.log/FileNamePattern!--日志文件保留天数--MaxHistory30/MaxHistorytimeBasedFileNamingAndTriggeringPolicy classch.qos.logback.core.rolling.SizeAndTimeBasedFNATP!-- 除按日志记录之外还配置了日志文件不能超过10M(默认)若超过10M日志文件会以索引0开始 --maxFileSize10MB/maxFileSize/timeBasedFileNamingAndTriggeringPolicy/rollingPolicyencoder classch.qos.logback.classic.encoder.PatternLayoutEncoder!--格式化输出%d表示日期%thread表示线程名%-5level级别从左显示5个字符宽度 %method 方法名 %L 行数 %msg日志消息%n是换行符--pattern %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{56}.%method:%L - %msg%n/patterncharsetutf-8/charset/encoder!-- 此日志文件只记录info级别的 --filter classch.qos.logback.classic.filter.LevelFilterlevelINFO/levelonMatchACCEPT/onMatchonMismatchDENY/onMismatch/filter/appender!--错误日志统一输出到这里--appender namefile.error classch.qos.logback.core.rolling.RollingFileAppenderPrudenttrue/PrudentrollingPolicy classch.qos.logback.core.rolling.TimeBasedRollingPolicy!--日志文件输出的文件名按天生成--FileNamePattern${LOG_HOME}/%d{yyyy-MM-dd}/error/error.%d{yyyy-MM-dd}.%i.log/FileNamePattern!--日志文件保留天数--MaxHistory30/MaxHistorytimeBasedFileNamingAndTriggeringPolicy classch.qos.logback.core.rolling.SizeAndTimeBasedFNATP!-- 除按日志记录之外还配置了日志文件不能超过10M(默认)若超过10M日志文件会以索引0开始 --maxFileSize10MB/maxFileSize/timeBasedFileNamingAndTriggeringPolicy/rollingPolicyencoder classch.qos.logback.classic.encoder.PatternLayoutEncoder!--格式化输出%d表示日期%thread表示线程名%-5level级别从左显示5个字符宽度 %method 方法名 %L 行数 %msg日志消息%n是换行符--pattern %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{56}.%method:%L - %msg%n/patterncharsetutf-8/charset/encoder!-- 此日志文件只记录error级别的 --filter classch.qos.logback.classic.filter.LevelFilterlevelERROR/levelonMatchACCEPT/onMatchonMismatchDENY/onMismatch/filter/appender!--warn日志统一输出到这里--appender namefile.warn classch.qos.logback.core.rolling.RollingFileAppenderPrudenttrue/PrudentrollingPolicy classch.qos.logback.core.rolling.TimeBasedRollingPolicyFileNamePattern${LOG_HOME}/%d{yyyy-MM-dd}/warn/warn.%d{yyyy-MM-dd}.%i.log/FileNamePattern!--日志文件保留天数--MaxHistory30/MaxHistorytimeBasedFileNamingAndTriggeringPolicy classch.qos.logback.core.rolling.SizeAndTimeBasedFNATP!-- 除按日志记录之外还配置了日志文件不能超过10M(默认)若超过10M日志文件会以索引0开始 --maxFileSize10MB/maxFileSize/timeBasedFileNamingAndTriggeringPolicy/rollingPolicyencoder classch.qos.logback.classic.encoder.PatternLayoutEncoder!--格式化输出%d表示日期%thread表示线程名%-5level级别从左显示5个字符宽度 %method 方法名 %L 行数 %msg日志消息%n是换行符--pattern %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{56}.%method:%L - %msg%n/patterncharsetutf-8/charset/encoder!-- 此日志文件只记录warn级别的 --filter classch.qos.logback.classic.filter.LevelFilterlevelWARN/levelonMatchACCEPT/onMatchonMismatchDENY/onMismatch/filter/appenderappender namefile.thread classch.qos.logback.core.rolling.RollingFileAppenderPrudenttrue/PrudentrollingPolicy classch.qos.logback.core.rolling.TimeBasedRollingPolicyFileNamePattern${LOG_HOME}/%d{yyyy-MM-dd}/thread/thread.%d{yyyy-MM-dd}.%i.log/FileNamePattern!--日志文件保留天数--MaxHistory30/MaxHistorytimeBasedFileNamingAndTriggeringPolicy classch.qos.logback.core.rolling.SizeAndTimeBasedFNATP!-- 除按日志记录之外还配置了日志文件不能超过10M(默认)若超过10M日志文件会以索引0开始 --maxFileSize100MB/maxFileSize/timeBasedFileNamingAndTriggeringPolicy/rollingPolicyencoder classch.qos.logback.classic.encoder.PatternLayoutEncoder!--格式化输出%d表示日期%thread表示线程名%-5level级别从左显示5个字符宽度 %method 方法名 %L 行数 %msg日志消息%n是换行符--pattern %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{56}.%method:%L - %msg%n/patterncharsetutf-8/charset/encoder!-- 此日志文件会收集info以上日志级别 --filter classch.qos.logback.classic.filter.ThresholdFilterlevelINFO/level/filter/appender!-- 日志输出级别 --root leveldebugappender-ref refconsole /appender-ref reffile.error /appender-ref reffile.info /appender-ref reffile.warn //rootlogger namethread additivityfalseappender-ref reffile.thread/appender-ref refconsole //logger!-- 这个类的所有日志都可以输出到--logger namecom.chongba.schedule.service.VisiableThreadPool additivityfalseappender-ref reffile.thread//logger/configuration线程池日志监控
Slf4j
public class VisiableThreadPool extends ThreadPoolTaskExecutor{/*** 收集线程池运行参数信息的方法* param info*/private void logs(String info){/*** - getThreadNamePrefix线程池内线程名称前缀方便定位- getTaskCount线程池已经执行的和未执行的任务总数- getCompletedTaskCount线程池已完成的任务数量该值小于等于taskCount- getActiveCount当前线程池中正在执行任务的线程数量。- queueSize缓冲队列大小。*/String prefix this.getThreadNamePrefix();long taskCount this.getThreadPoolExecutor().getTaskCount();long completedTaskCount this.getThreadPoolExecutor().getCompletedTaskCount();int activeCount this.getThreadPoolExecutor().getActiveCount();int queueSize this.getThreadPoolExecutor().getQueue().size();log.info(prefix{},info{},taskCount{},completedCount{},activeCount{},queueSize{},prefix,info,taskCount,completedTaskCount,activeCount,queueSize);}Overridepublic void execute(Runnable task) {super.execute(task);logs(do execute);}Overridepublic T FutureT submit(CallableT task) {FutureT future super.submit(task);logs(do submit);return future;}
}
常用logback配置
?xml version1.0 encodingUTF-8?configuration!--定义日志文件的存储地址,使用绝对路径--property nameLOG_HOME valueD:/logs/!-- Console 输出设置 --appender nameCONSOLE classch.qos.logback.core.ConsoleAppenderencoder!--格式化输出%d表示日期%thread表示线程名%-5level级别从左显示5个字符宽度%msg日志消息%n是换行符--pattern%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n/patterncharsetutf8/charset/encoder/appender!-- 按照每天生成日志文件 --appender nameFILE classch.qos.logback.core.rolling.RollingFileAppenderrollingPolicy classch.qos.logback.core.rolling.TimeBasedRollingPolicy!--日志文件输出的文件名--fileNamePattern${LOG_HOME}/leadnews.%d{yyyy-MM-dd}.log/fileNamePattern/rollingPolicyencoderpattern%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n/pattern/encoder/appender!-- 异步输出 --appender nameASYNC classch.qos.logback.classic.AsyncAppender!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 --discardingThreshold0/discardingThreshold!-- 更改默认的队列的深度,该值会影响性能.默认值为256 --queueSize512/queueSize!-- 添加附加的appender,最多只能添加一个 --appender-ref refFILE//appenderlogger nameorg.apache.ibatis.cache.decorators.LoggingCache levelDEBUG additivityfalseappender-ref refCONSOLE//loggerlogger namecom.example.logback levelwarn /root levelinfo!--appender-ref refASYNC/--appender-ref refFILE/appender-ref refCONSOLE//root
/configuration