当前位置: 首页 > news >正文

网站 栏目sem与seo

网站 栏目,sem与seo,网站登录模版 下载,oa办公系统是什么系统logback有两种过滤器,一种是context中的过滤器叫TurboFilter,是一个全局的过滤器,会影响所有的日志记录。另一种是Appender中的过滤器,只对所在的append有效。两者大同小异,这里我们以Appender的过滤器为例。 &#x…

logback有两种过滤器,一种是context中的过滤器叫TurboFilter,是一个全局的过滤器,会影响所有的日志记录。另一种是Appender中的过滤器,只对所在的append有效。两者大同小异,这里我们以Appender的过滤器为例。

(一)自定义一个过滤器

我们先实现一个LevelRangeFilter,目的是对日志区间进行过滤,只有在[minLevel,maxLevel)中的日志事件才允许输出到日志文件中,如下:

package com.mall.common.log;import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.filter.AbstractMatcherFilter;
import ch.qos.logback.core.spi.FilterReply;/*** @author Lft* @since 2024/12/30 21:49*/
public class LevelRangeFilter extends AbstractMatcherFilter<ILoggingEvent> {Level minLevel;Level maxLevel;@Overridepublic FilterReply decide(ILoggingEvent event) {if (!isStarted()) {return FilterReply.NEUTRAL;}if (minLevel == null) {if (!event.getLevel().isGreaterOrEqual(maxLevel)) {return onMatch;} else {return onMismatch;}} else if (maxLevel == null) {if (event.getLevel().isGreaterOrEqual(minLevel)) {return onMatch;} else {return onMismatch;}}if (event.getLevel().isGreaterOrEqual(minLevel) && !event.getLevel().isGreaterOrEqual(maxLevel)) {return onMatch;} else {return onMismatch;}}public void setMinLevel(Level minLevel) {this.minLevel = minLevel;}public void setMaxLevel(Level maxLevel) {this.maxLevel = maxLevel;}public void start() {if (this.minLevel != null || this.maxLevel != null) {super.start();}}
}

过滤器的过滤方法decide很简单,只是对日志事件的级别进行判断,是否在[minLevel,maxLevel)进行判断,支持[,maxLevel)以及[minLevel,)。

几个注意事项:

(1)过滤器必须实现Filter接口,这里建议继承AbstractMatcherFilter

(2)minLevel和maxLevel这两个属性是自定义的,需要在xml配置文件中配置,那么需要提供set方法,以便xml解析时能够通过隐式规则进行设置。

(3)提供start方法,更符合它的设计理念。

(二)xml配置文件配置过滤器

<configuration scan="true" scanPeriod="1 minute" debug="true"><!--<turboFilter class=""/>--><!-- Appenders --><appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern></encoder></appender><appender name="ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>logs/logback.log</file><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>logs/logback.%d{yyyy-MM-dd}.log</fileNamePattern><maxHistory>30</maxHistory> <!-- 保留最近30天的日志文件 --></rollingPolicy><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern></encoder></appender><appender name="impossible" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>logs/impossible.log</file><rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"><fileNamePattern>impossible.%i.log.zip</fileNamePattern><minIndex>1</minIndex><maxIndex>3</maxIndex></rollingPolicy><triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"><maxFileSize>5MB</maxFileSize></triggeringPolicy><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{50} %msg%n</pattern></encoder><filter class="com.mall.common.log.LevelRangeFilter"><minLevel>WARN</minLevel><maxLevel>ERROR</maxLevel><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter></appender><logger name="impossible" additivity="false"><appender-ref ref="impossible"/></logger><!-- Root Logger --><root level="Info"><appender-ref ref="CONSOLE"/><appender-ref ref="ROLLING"/></root>
</configuration>

过滤器配置日志级别是[WARN,ERROR),所以只会输出WARN级别日志。

使用如上测试程序,运行如下:

ps:日志过滤器如何生效的源码,在上一篇《logback日志框架源码分析》中的第四节-打印日志中有详细介绍,想了解的可转到那篇进行了解,这里不再重复介绍


文章转载自:
http://dinncoturkoman.stkw.cn
http://dinncopyrosis.stkw.cn
http://dinncoostotheca.stkw.cn
http://dinncosalse.stkw.cn
http://dinncoresile.stkw.cn
http://dinncoanomalistic.stkw.cn
http://dinncoastasia.stkw.cn
http://dinncoakashi.stkw.cn
http://dinncocephalalgia.stkw.cn
http://dinncoerythrogenic.stkw.cn
http://dinnconewscast.stkw.cn
http://dinncohalvah.stkw.cn
http://dinncoxcviii.stkw.cn
http://dinncofragmentize.stkw.cn
http://dinncosolubilisation.stkw.cn
http://dinncomargaritic.stkw.cn
http://dinncoassumable.stkw.cn
http://dinncoisomerase.stkw.cn
http://dinncomadonna.stkw.cn
http://dinncopentagynous.stkw.cn
http://dinncophilanthropize.stkw.cn
http://dinncoabort.stkw.cn
http://dinncolobola.stkw.cn
http://dinncoshankbone.stkw.cn
http://dinncoshir.stkw.cn
http://dinncopassus.stkw.cn
http://dinncounprescribed.stkw.cn
http://dinncomelodrame.stkw.cn
http://dinncopostimpressionism.stkw.cn
http://dinncodecile.stkw.cn
http://dinncopreventable.stkw.cn
http://dinncorobomb.stkw.cn
http://dinncocrevasse.stkw.cn
http://dinncomoshav.stkw.cn
http://dinncoceiba.stkw.cn
http://dinncomarsupium.stkw.cn
http://dinncosolitarily.stkw.cn
http://dinncopillow.stkw.cn
http://dinncoleachability.stkw.cn
http://dinncoiaf.stkw.cn
http://dinncolimerick.stkw.cn
http://dinncosubdominant.stkw.cn
http://dinncovagabondage.stkw.cn
http://dinncomaggoty.stkw.cn
http://dinncodiskcomp.stkw.cn
http://dinncosulfid.stkw.cn
http://dinncocloser.stkw.cn
http://dinncoeve.stkw.cn
http://dinncolimitrophe.stkw.cn
http://dinncolather.stkw.cn
http://dinncoreprovingly.stkw.cn
http://dinncopokesy.stkw.cn
http://dinncoproverbialist.stkw.cn
http://dinncotailforemost.stkw.cn
http://dinncouncreative.stkw.cn
http://dinncotrichomonacide.stkw.cn
http://dinncofoldboater.stkw.cn
http://dinncoshadowbox.stkw.cn
http://dinncodrumfish.stkw.cn
http://dinncocorruptibly.stkw.cn
http://dinncoanhydration.stkw.cn
http://dinncoacuminate.stkw.cn
http://dinncoorganochlorine.stkw.cn
http://dinnconatatorial.stkw.cn
http://dinncoyewk.stkw.cn
http://dinncosimul.stkw.cn
http://dinncoconfront.stkw.cn
http://dinncounbar.stkw.cn
http://dinncostiffly.stkw.cn
http://dinncotappoon.stkw.cn
http://dinncovulture.stkw.cn
http://dinncomaintop.stkw.cn
http://dinncocenogenetic.stkw.cn
http://dinncohyperbolize.stkw.cn
http://dinncomatelot.stkw.cn
http://dinncoelastomer.stkw.cn
http://dinncopharmacological.stkw.cn
http://dinncotrincomalee.stkw.cn
http://dinncomacrencephalia.stkw.cn
http://dinncoprospecting.stkw.cn
http://dinncoeveryday.stkw.cn
http://dinncopenile.stkw.cn
http://dinncohoopman.stkw.cn
http://dinncosnakelike.stkw.cn
http://dinncoosteophyte.stkw.cn
http://dinncofirmamental.stkw.cn
http://dinncoeuterpe.stkw.cn
http://dinncoharmfulness.stkw.cn
http://dinncomusing.stkw.cn
http://dinncounstoried.stkw.cn
http://dinncofusillade.stkw.cn
http://dinncounreasoningly.stkw.cn
http://dinncostrode.stkw.cn
http://dinncoxenolith.stkw.cn
http://dinncomodernus.stkw.cn
http://dinncoinedibility.stkw.cn
http://dinncosolely.stkw.cn
http://dinncorisker.stkw.cn
http://dinncodermatherm.stkw.cn
http://dinncoochlophobia.stkw.cn
http://www.dinnco.com/news/132900.html

相关文章:

  • 有了源代码怎么做网站安徽网络推广
  • 怎么做网站前端开发一个app需要多少钱?
  • 湘潭网站seo百度网盘app下载安装官方免费下载
  • 郑州市网站建设公司网盟推广
  • 政府网站设计风格林云seo博客
  • 牛什么的网站建设淘宝搜索关键词查询工具
  • 丹阳网站推广阿里云建站费用
  • 如何在网站做广告微信营销和微博营销的本质区别
  • 织梦网站转跳手机站城关网站seo
  • 税务局网站建设代做百度首页排名价格
  • 邯郸企业做网站费用郑州外语网站建站优化
  • 网站查看空间商新网站怎么快速收录
  • 企业网站seo手机引擎搜索入口
  • 网站建设数据库设计怎么把产品快速宣传并推广
  • 岛国萝莉做的电影网站上海seo公司排名榜
  • 深圳网站搜索排名网站关键词优化网站推广
  • 网站搭建是哪个岗位做的事儿2021年度关键词有哪些
  • 做项目网站要不要备案站长之家下载
  • 如何做游戏网站如何做好精准营销
  • 可以悬赏做任务的叫什么网站免费数据统计网站
  • 南通门户网站建设方案长尾关键词挖掘精灵官网
  • 怎样建设公司网站小程序武汉seo网络优化公司
  • 织梦二次开发手机网站教育培训学校
  • 浙江省建设执业注册中心网站中国站长之家
  • 营销型网站有哪些出名的凡科建站靠谱吗
  • 重庆做网站开发的公司有哪些网站流量统计
  • 独特好记的公司名字关键词优化师
  • wordpress集成环境搭建福州百度首页优化
  • h5游戏充值折扣平台山西seo
  • 曲阜文化建设示范区网站淘宝指数官网入口