当业务比较复杂的时候,会希望按照业务来归类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/**"); } }
相关推荐
标题中的“通过短信发送LOG归类号码发送情况的shell脚本”指的是一个使用Shell脚本来监控和报告手机验证码或信息发送的状态。这个脚本的主要目的是分析日志文件(`sendsms.log`),从中提取出特定的信息,如发送成功...
6. 编写业务逻辑类、DAO接口和Mapper XML文件,实现Mybatis的数据访问。 7. 编写控制器类,使用SpringMVC的注解处理HTTP请求。 8. 运行项目,检查日志、数据库连接、定时任务是否正常工作。 以上是一个基本的集成...
在实际应用中,根据业务需求,可能还需要考虑是否允许匿名订阅,以及如何处理署名订阅的问题。如果需要匿名订阅但发布不允许,可以在发布服务器的属性设置中添加订阅服务器,或者在企业管理器中进行相应调整。 总的...
4. **业务洞察**:对于用户行为日志,分析可以提供关于用户偏好、流量模式和转化率的见解,对产品改进和营销策略有指导意义。 5. **合规性审计**:在某些行业,如金融、医疗等,记录和分析日志是满足法规要求的重要...
Oracle数据库的备份与恢复是确保数据安全性和业务连续性的重要环节。本文主要讲解了Oracle数据库在面临各种故障情况时的应对策略,以及不同类型的备份和恢复方法。 首先,Oracle数据库可能遭遇的失败类型包括用户误...
- `log-bin`配置项指定了二进制日志文件的前缀名,这对于后续的数据复制至关重要。 **步骤2:创建复制用户** - 登录到主服务器的MySQL客户端,创建一个用于数据复制的用户`backup`: ```sql GRANT REPLICATION ...
在实践中,根据具体的硬件资源和业务需求,合理调整`my.cnf`的参数,如`back_log`(等待连接队列的大小)、`tmpdir`(临时文件存储位置)等,可以显著提高MySQL的性能和稳定性。 总之,理解并熟练运用这些MySQL的...
- Keepalive和Timeout设置:查看Web服务器配置文件获取相关参数。 **注意事项**:这种方法适用于最前端的服务器或7层交换机,因为后端服务器可能由于缓存或连接方式导致数据不准确。 **方法二:利用服务器日志...
- AOP(面向切面编程):一种编程范式,允许把横切关注点与业务主体分离,以减少重复代码。 - SSO(单点登录):一种用户登录系统的方式,可以在多个应用系统中使用同一套登录凭证进行访问。 ***:微软开发的一个...
### .Net中常见问题及解决方法归类 #### 一、概述 .NET框架自问世以来,在Web开发领域占据了举足轻重的地位。特别是在ASP.NET框架的推动下,它成为了构建高效、安全的企业级应用程序的理想选择之一。然而,在实际...
- **目录结构**:明确了打包后的文件夹结构,包括`bin`(存放可执行文件)、`lib`(存放库文件)、`conf`(存放配置文件)、`log`(存放日志文件)等。 - **注意事项**:要求不得在软件包顶层直接存放任何文件,并...
这部分的实现可能基于业务规则和算法,例如,折旧计算可能需要根据资产类型和使用年限来确定。 总的来说,这个Java项目的企业固定资产管理系统通过Java语言强大的功能和灵活性,实现了对企业固定资产的全面管理,...
同时还需要配置`log4j.properties`文件来定义日志行为,并创建`applicationContext.xml`作为Spring的配置文件。 ##### 2. 引入命名空间和Schema配置 为了让Spring能够识别并处理自动扫描相关的配置,需要在`...
对于日志主题(Log Topic),CLS允许创建多个主题来归类不同的日志数据。开发者可以通过SDK创建主题,设置主题的生命周期、存储策略等。例如,可以使用`CreateTopic`接口创建一个新的日志主题。 消费组(Consumer ...
3. **角色(Roles)**:角色是一种方便的分组方式,将具有相似权限的用户归类。通过分配角色,可以轻松地控制一大群用户的访问权限。C#中,`System.Web.Security`命名空间的`Roles`类用于管理角色。 4. **访问控制...
企业管理系统设计过程中,最重要的结构设计是对企业信息数据库的设计,包括了如何对员工信息进行归类,如何对职务信息进行处理以及部门之间的关系的解决,该项目采用了六张数据表分别对企业信息进行分类 1. 员工...
FlyCms 是一个类似知乎以问答为基础的完全开源的JAVA语言开发的社交网络建站程序,基于 Spring Boot+Bootstrap3+MyBatis+MYSQL+Solr+Ehcache 应用架构,专注于社区内容的整理、归类和检索,它集合了问答,digg,wiki...
"other-workspace" 是一个专为存放不适合归类到其他特定目录或工作空间的杂项项目而设计的存储区域。这个命名通常用于开发者的工作环境中,尤其是对于那些从事多项目管理和跨语言开发的人员来说,这样的组织方式可以...
根据提供的文件信息,本文将对其中的关键知识点进行详细的解析与说明。主要涉及软件开发工具的选择、使用、以及相关的技术和管理方面的问题。 ### 单选题部分解析 #### 1. 支持面向对象的语言及其开发工具 - **...
虽然对分查找的时间复杂度为\(O(\log_2 n)\),但在链表中无法实现对分查找。 - **D)** 错误。此选项同样与链表查找不相符。 **2. 算法的时间复杂度** - **选项解析**: - **A)** 错误。算法的执行时间受多种因素...