首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在MVC应用程序中分组日志消息的最佳方式是什么

在MVC应用程序中分组日志消息的最佳方式是什么
EN

Stack Overflow用户
提问于 2018-10-16 07:37:24
回答 2查看 34关注 0票数 1

我想用最少的重构将日志系统添加到spring MVC应用程序中。我想对每个请求的消息进行分组,并附加一些id。我想到的一种方法是,在控制器中创建一些带有id的记录器对象,并将其传递给服务DAO层。所有的层都在不断地向该记录器对象添加消息。最后,在请求处理结束时打印它们。Spring或log4j框架是否提供了更好的方法来实现这一点?

EN

回答 2

Stack Overflow用户

发布于 2018-10-16 08:22:19

Spring有一个请求作用域,因此您可以创建一个在接收请求时生成的请求作用域ID对象。然后,您可以将此对象注入到需要使用常规依赖注入进行日志记录的类中,这样您就不必传递任何东西了。

代码语言:javascript
复制
@Bean
@Scope(value = WebApplicationContext.SCOPE_REQUEST, proxyMode = ScopedProxyMode.TARGET_CLASS)
public RequestId requestScopedBean() {
    return new RequestId();
}    

至于日志,通常的做法是为每个类初始化一个日志。然后你就可以在每个类中拥有你想要的所有元素了。

代码语言:javascript
复制
private static final Logger logger = Logger.getLogger(YourClass.java)

希望它能帮上忙!

票数 0
EN

Stack Overflow用户

发布于 2018-10-16 12:09:52

Spring Security有一个特性可以自动将SessionId添加到记录器中。Check this One

在这里发布相同的答案:

代码语言:javascript
复制
RequestContextHolder.currentRequestAttributes().getSessionId();

这依赖于Spring的RequestContextHolder,所以它应该与Spring MVC的DispatcherServlet一起使用,或者您应该声明一个RequestContextListener。如果不存在,也将创建会话。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52826082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档