我的用例如下(伪代码):
def addUser(user) {
MDC.put(user.id)
LOG.trace(MyMarkers.ENTRY_POINT, "adding user {}", user);
calcUser(user)
MDC.remove(user.id)
}
def calcUser(user) {
calcUserName(user)
}
def calcUseName(user) {
storeUserInCache(user)
}
storeUserInCache(user) {
// is this a good use case? in case I want to enable CACHE feature in TRACE
// in logs (for the sake of example or any other feature to enable its tracing
// in logs i mark different TRACE with different markers.
LOG.trace(MyMarkers.CACHE, "storing user {} in cache", user);
}
getUserFromCache(userid) {
LOG.trace(MyMarkers.CACHE, "getting user {} from cache", userid)
}
现在我的意思是能够通过TRACE on
为userid
切换MDC
,我还可以为不同的功能切换开启或关闭日志。例如,使用CACHE marker
我可以让我的应用程序记录CACHE
中的所有TRACE
功能,因为我想查看跟踪中的所有缓存。 CACHE marker
是markers
的一个好用例吗?作为切换来查看我的日志CACHE
中的所有TRACE
功能?
答案 0 :(得分:2)
我认为在每个功能的基础上操作日志记录非常符合标记的制作方式。尽管如此,阅读并实现基于现有最佳实践的内容总是很好。
这个问题是关于slf4j logback的最佳实践,应该是有用的: Best practices for using Markers in SLF4J/Logback