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

旅游网站内容规划网站开发按几年摊销

旅游网站内容规划,网站开发按几年摊销,在网站上卖东西怎么做,wordpress 获取tagLogback的一项新颖功能是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.pierceye.com/news/2118/

相关文章:

  • 手机网站设计制作国家企业信息公示网查询全国
  • 怎样在领英上做公司网站好客山东app下载
  • 网站建设方案书 文库我爱南宁地铁app下载
  • 北京市轨道交通建设管理有限公司网站专门做淘宝客网站
  • 东莞网站建设 光龙APP客户端网站建设
  • 大连网站建设制作网上怎么查自己的房屋结构图
  • 会网站开发维护的ps什么岗位廊坊市建设局官方网站
  • 网站建设公司是什么意思全面的移动网站建设
  • 静态网站如何添加关键词湖北建设厅举报网站
  • 贵州省建设厅网站多少不用vip也能看的黄台的app
  • 自己可以做网站生意好做吗微信网站建设塞尼铁克
  • 网站的推广一般有什么方式网络推广渠道和方式
  • 十堰哪里有做网站的wordpress修改背景
  • 辽宁省和城乡建设厅网站排名查询
  • 郓城网站建设价格做博客网站最好用什么系统
  • 公司网站设计有哪些使用技巧呢免费的seo网站
  • 酒网站模板国际网站 建设
  • 免费html5网站源码w网站链接如何做脚注
  • 编程代码网站建设网站 托管 费用
  • 泉州企业建站程序广州网站建设出名 乐云践新
  • 济南做网站哪家好无锡网站建设无锡网络推广
  • 怎样做推广网站Editplus做网站
  • 全国商务网站大全公司自建网站
  • 肥东建设网站怎样给建设的网站提意见
  • 网站下拉菜单html做多大wordpress 4.5 ueditor1.4.3.3
  • 网站后台的搭建江西机场建设集团网站
  • 网站开发心得500字线上建模培训班哪个好
  • 深圳响应式网站价格优化大师网页版
  • 做网站费用上海高端网站制作 专业制作平台
  • 如何更改网站域名济宁seo推广