目前我正在为我的应用程序处理log4j的东西。我有一个特定的日志记录要求。我需要为特定的调用层次结构定义记录器。 这意味着特定调用层次结构的所有日志消息都应该转到特定的appeneder。
示例
AddFormAction( method1 )--- | --- FormBusinessObject( method4 ) - | - FormDAOObject( method5 )
EditFormAction(method2)----- | ---- FormBusinessObject(method4) - | - FormDAOObject(method5)
DeleteFormAction(method3)---- | --- FormBusinessObject(method4) - | - FormDAOObject(method5)
我想为特定的调用层次结构1 - 4 -5定义一个记录器。这些消息应该转到addform.log。
我不希望2-4-5或3-4-5调用层次结构的消息转到addform.log。
希望我明白我的要求。任何帮助都非常感谢。提前感谢您的回复。
答案 0 :(得分:0)
我对log4j了解不多,但这听起来像是AspectJ的完美案例。
答案 1 :(得分:0)
一种方法是使用注入来为依赖关系提供其记录器实例。
public bool addFormAction( .... form data .... ) {
Logger logger = LogManager.getLogger( "AddFormLogger" );
FormBusinessObject form = new FormBusinessObject( logger );
form.setProperty1( parameter1 );
form.save();
}
...
public class FormBusinessObject
{
private Logger logger;
public FormBusinessObject() {
logger = LogManager.GetLogger( "DefaultLogger" );
}
public FormBusinessObject( Logger logger ) {
logger = logger;
}
...
public void save() {
logger.info( "Saving form" );
...
}
}