我有一个应用程序,使用了几个不同的Java类,希望能够向日志消息提供调试上下文。
每个类将单独构建或检索此上下文(基本上是一个字符串),并将其传递给相应的日志调用,例如:
每个类将单独构建或检索此上下文(基本上是一个字符串),并将其传递给相应的日志调用,例如:
logger.debug(context + ", whatever error message");
所以,我的问题是,在整个应用程序中实现这种功能的最佳模式将是什么?
我考虑让所有需要支持上下文敏感日志记录的类实现一个Java接口,具有一些适当的方法,例如:
public interface ContextSensitive
{
public String getContext();
public String setContext();
}
在涉及到IT技术的情况下,setContext()
方法可以用于以下情况:当一个对象(比如secondObject)从具有上下文的对象(比如firstObject)实例化时,但是secondObject本身没有上下文时。因此,firstObject也会执行类似以下操作:
secondObject = new SecondObject();
secondObject.setContext(context);
上面的内容是否有意义,或者我需要做些更好的事情吗?
我一直在考虑的另一种选择是编写一个包装器,围绕日志记录库来提供这个功能,但与基于ContextSensitive
接口的上述方法相比,我并没有看到任何价值。
如果有任何解决相同问题的开源项目示例,我将感激不尽。
非常感谢!