多个功能是一个很好的用于回溯标记的用例?

时间:2014-03-09 20:17:32

标签: java scala log4j slf4j logback

我的用例如下(伪代码):

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 onuserid切换MDC,我还可以为不同的功能切换开启或关闭日志。例如,使用CACHE marker我可以让我的应用程序记录CACHE中的所有TRACE功能,因为我想查看跟踪中的所有缓存。 CACHE markermarkers的一个好用例吗?作为切换来查看我的日志CACHE中的所有TRACE功能?

1 个答案:

答案 0 :(得分:2)

我认为在每个功能的基础上操作日志记录非常符合标记的制作方式。尽管如此,阅读并实现基于现有最佳实践的内容总是很好。

这个问题是关于slf4j logback的最佳实践,应该是有用的: Best practices for using Markers in SLF4J/Logback