当业务比较复杂的时候,会希望按照业务来归类log文件,而不是放到一个文件里。
比如说,我希望按照cotroller单位去划分log文件,并且设定每个log文件的size是10MB,那么可以做一下设置。
<?xml version="1.0" encoding="UTF-8"?> <configuration> <include resource="org/springframework/boot/logging/logback/base.xml" /> <appender name="SIFT" class="ch.qos.logback.classic.sift.SiftingAppender"> <discriminator class="ch.qos.logback.classic.sift.MDCBasedDiscriminator"> <key>funcid</key> <defaultValue>all</defaultValue> </discriminator> <sift> <appender name="debug-${funcid}" class="ch.qos.logback.core.rolling.RollingFileAppender"> <encoder> <pattern>${FILE_LOG_PATTERN}</pattern> </encoder> <file>d:/debug-${funcid}.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> <fileNamePattern>d:/debug-${funcid}.log.%i</fileNamePattern> </rollingPolicy> <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <MaxFileSize>10MB</MaxFileSize> </triggeringPolicy> </appender> </sift> </appender> <logger name="jp.co.abc.controller" level="debug"> <appender-ref ref="SIFT" /> </logger> </configuration>
这样,我们可以在出力log的时候,设定funcid来决定,log出力到哪个file里。
每次设置肯定会比较繁琐,我们可以在HandlerInterceptor里来设定funcid,这样就不用每次出力log时都设定funcid了。
public class LogConfigInterceptor extends HandlerInterceptorAdapter { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { if(handler instanceof HandlerMethod){ HandlerMethod hm = (HandlerMethod)handler; MDC.put("funcid", hm.getBeanType().getSimpleName()); } return true; } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { // TODO Auto-generated method stub MDC.remove("funcid"); } }
然后在WebMvcConfigurer把这个HandlerInterceptor注册上就好了
@Component public class MvcConfigurer extends WebMvcConfigurerAdapter { @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new LogConfigInterceptor()).addPathPatterns("/**").excludePathPatterns("/static/**"); } }
相关推荐
依据name.txt文件中的内容,对某一目录下的文件实现复制归类,工作中相当实用
文件自动归类整理.zip
获取文件完整路径,文件大小,并进行归类到其他目录下
spring 配置文件 归类 IOC AOPspring 配置文件 归类 IOC AOP
该P程序可以实现同扩展名文件自动归类到指定目录中,工作中相当实用!
Python版文件夹整理工具,按文件类型进行归类,可修改config.json来自定义归类方式,自动删除空文件夹,可自动按照图片、视频、音频、电子表格、文档、压缩文件、程序脚本、可执行程序进行归类
自动柜类文件的批处理,解决桌面混乱的问题。希望亲测可用,大家可以试试,本素材来源网上。
dump文件归类插件,有需要自取,方便简单好用,快捷顺畅
《保险业务综合实训》作业文件2022归类.docx
java读取XML文件内容的四种方法[归类].pdf
自动整理归类Linux服务器文件
根据设定的目录,文件格式,大小等,快速将目录内(包括子目录)的所有文件自动提取出来,归到一个文件夹内,尤其是对爱好学习的同学有用,图片文件,文本文件; 包内有源代码,VS.NET2005/C#
python实现文件自动归类 从别的地方偷瞄过来的代码,可以参考
人民币资金业务试题归类.pdf
如何把excel文件中点的坐标导入到CATIA软件中归类.pdf
环卫待遇文件归类.pdf
怎样使用打印共享,以及各个系统之间打印机共享设置
java编写的文件归类工具,可将指定文件夹中的相同后缀名的文件移动到以文件后缀名为名称的文件夹中,如没有以文件后缀名为名称的文件夹,系统会自行建立;如撤销,即可撤销所有操作,jar文件中附带源代码,欢迎指正...
5.3承兑汇票管理业务流程归类.pdf
CSV文件简单数据归类(使用冒泡排序,如需加快速度应更改数据结构且使用STL排序) 简单的写了一个,运行速度不高。还需改进! 在debug里面已经有一个可执行文件可以先测试一下。 最好用小文件测试,使用大文件的话速度...