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

免费发布招聘的网站潍坊网站建设一品网络小程序

免费发布招聘的网站,潍坊网站建设一品网络小程序,p2p网站制作,建设社区网站有什么借鉴之处Logback的一项新颖功能是SiftingAppender #xff08; JavaDoc #xff09;。 简而言之#xff0c;它是一个代理附加器#xff0c;它为给定运行时属性的每个唯一值创建一个子附加器。 通常#xff0c;此属性来自MDC 。 这是基于上面链接的官方文档的示例#xff1a; JavaDoc 。 简而言之它是一个代理附加器它为给定运行时属性的每个唯一值创建一个子附加器。 通常此属性来自MDC 。 这是基于上面链接的官方文档的示例 ?xml version1.0 encodingUTF-8? configurationappender nameSIFT classch.qos.logback.classic.sift.SiftingAppenderdiscriminatorkeyuserid/keydefaultValueunknown/defaultValue/discriminatorsiftappender nameFILE-${userid} classch.qos.logback.core.FileAppenderfileuser-${userid}.log/filelayout classch.qos.logback.classic.PatternLayoutpattern%d{HH:mm:ss:SSS} | %-5level | %thread | %logger{20} | %msg%n%rEx/pattern/layout/appender/sift/appenderroot levelALLappender-ref refSIFT //root /configuration 注意 file属性是使用${userid}属性进行参数化的。 这个财产来自哪里 它必须放在MDC中。 例如在使用Spring Security的Web应用程序中我倾向于在SecurityContextHolder的帮助下使用servlet过滤器 import javax.servlet._ import org.slf4j.MDC import org.springframework.security.core.context.SecurityContextHolder import org.springframework.security.core.userdetails.UserDetailsclass UserIdFilter extends Filter {def init(filterConfig: FilterConfig) {}def doFilter(request: ServletRequest, response: ServletResponse, chain: FilterChain) {val userid Option(SecurityContextHolder.getContext.getAuthentication).collect{case u: UserDetails u.getUsername}MDC.put(userid, userid.orNull)try {chain.doFilter(request, response)} finally {MDC.remove(userid)}}def destroy() {} } 只要确保在Spring Security过滤器之后应用此过滤器即可。 但这不是重点。 文件名中${userid}占位符的存在会导致筛选追加程序为该属性的每个不同值因此不同的用户名创建一个子追加程序。 如果未设置MDC属性以这种配置运行Web应用程序将快速创建多个日志文件例如user-alice.log user-bob.log和user-unknown.log user-bob.log 。 另一个用例是使用线程名称而不是MDC属性。 不幸的是它不是内置的但是可以使用自定义Discriminator而不是默认的MDCBasedDiscriminator轻松插入 public class ThreadNameBasedDiscriminator implements DiscriminatorILoggingEvent {private static final String KEY threadName;private boolean started;Overridepublic String getDiscriminatingValue(ILoggingEvent iLoggingEvent) {return Thread.currentThread().getName();}Overridepublic String getKey() {return KEY;}public void start() {started true;}public void stop() {started false;}public boolean isStarted() {return started;} } 现在我们必须指示logback.xml使用我们的自定义标识符 appender nameSIFT classch.qos.logback.classic.sift.SiftingAppenderdiscriminator classcom.blogspot.nurkiewicz.ThreadNameBasedDiscriminator/siftappender classch.qos.logback.core.FileAppenderfileapp-${threadName}.log/filelayout classch.qos.logback.classic.PatternLayoutpattern%d{HH:mm:ss:SSS} | %-5level | %logger{20} | %msg%n%rEx/pattern/layout/appender/sift /appender 请注意我们不再将%thread放入PatternLayout –不必要因为线程名是日志文件名的一部分 app-main.log app-http-nio-8080-exec-1.log app-taskScheduler-1 app-ForkJoinPool-1-worker-1.log ……依此类推 对于服务器应用程序这可能不是最方便的设置但是在台式机上如EDT IO线程等专注线程数量有限这可能是一个重要的选择。 参考 SiftingAppender在Java和社区博客中我们的JCG合作伙伴 Tomasz Nurkiewicz将不同的线程记录到不同的日志文件中 。 翻译自: https://www.javacodegeeks.com/2013/04/siftingappender-logging-different-threads-to-different-log-files.html
http://www.zqtcl.cn/news/247979/

相关文章:

  • 网站电子备案哪个网站做网销更好
  • 做电子商务网站需要什么软件西北舜天建设有限公司网站
  • 怎么做门淘宝网站建筑模板厂
  • 纯静态网站开发做面食的网站
  • 网站海外推广服务wordpress 分类编号
  • 按月网站建设wordpress关闭主题
  • 网站建设设计官网网站为什么做优化ppt
  • 搭配网站开发的开题报告linux服务器做网站
  • 如何做公司网站点击率高电商网站哪家做的好
  • 网站提供什么服务少儿英语做游戏网站推荐
  • 用jsp做网站的体会在哪个网站做一照一码
  • 元典科技网站建设可视化网站制作
  • 网站首页尺寸做电影下载网站赚钱
  • 福州企业网站开发宁德市医院东侨院区
  • 昭通公司做网站ps在线网页版
  • 做阿里巴巴网站费用吗深圳市企业名录
  • 做仿牌网站被封动态公司网站设计
  • 怎么用flashfxp上传网站ui设计需要学哪些课程
  • 片头网站一个主机放多个网站
  • 商城网站一般建设的宽度网站开发图标
  • 做名片哪个网站可以找win7优化大师免安装版
  • 建筑网库网络优化的基本方法
  • 汕头市品牌网站建设公司做外贸那个网站比较好
  • 网站的好坏wordpress 页面制作
  • 成都网站建设熊掌号WordPress模板博客主题
  • 西宁网站建设有限公司个人建站提供软件下载
  • 商丘哪里教做网站的绵阳市三台县城乡建设局网站
  • 百度seo整站优化公司岳阳网站开发收费
  • 阳江市人才招聘网新乡网站关键词优化
  • 襄阳做公司网站的软件公司简单网页html模板