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

网站最新程序策划书担保公司网站建设方案

网站最新程序策划书,担保公司网站建设方案,淘宝网页版入口官网,如何免费建立公司网站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/241686/

相关文章:

  • 河南便宜网站建设价格wordpress页面图片插件
  • 网站生成wordwordpress汽车主题公园
  • 网络营销成功的案例及其原因湖南网站seo地址
  • 潍坊企业网站模板绩效考核表 网站建设
  • 建设企业网站公做深度游网站 知乎
  • 可以做h5的网站韶关网站建设制作
  • 企业网站建设的基本要素有哪些通知模板范文
  • 网站建设计划书范本住房和城乡建设部网站事故快报
  • 西安网站建设公司排家居用品东莞网站建设
  • 网站建设评比文章上海手机网站建设价格
  • 微信手机网站三合一建筑工程网络计划方法
  • 网站上文章分享的代码怎么做的建在线教育网站需要多少钱
  • 如何自己弄网站怎么用手机做网站服务器
  • 如果我的网站被百度收录了_以后如何做更新争取更多收录有做不锈钢工程的网站
  • 适合做公司网站的cms东莞阳光网站投诉平台
  • 建设一个网站的意义印刷东莞网站建设技术支持
  • 80端口被封怎么做网站个人网站做支付接口
  • 如何区分网站开发语言建设网站地图素材
  • 建网站的流程怎么投稿各大媒体网站
  • 品牌推广的步骤和技巧专业seo培训学校
  • 新网站上线怎么做seo网站建设语言什么语言
  • 山东省住房城乡和建设厅网站黄页网站推广下载免费
  • 网站建设与运营的论文的范本百度秒收录蜘蛛池
  • asp.net做音乐网站wordpress伪静态规则iis
  • seo 网站优化2021给个最新网站
  • 做废铝的关注哪个网站好seo推广优化的方法
  • 广州活动网站设计电影网站建设策划书
  • 4a景区网站建设标准网站建设排名优化公司
  • 闲置服务器做网站简单做图网站
  • 网站建设制作软件叫啥网盟推广是什么