我有一个配置文件,它有根目录和两个附加文件。在编程方面,我指定了两个类别。但这两个类别都有两个附加器。我尝试从每个类别中删除一个附加器,但它不起作用。在下面的代码中。我想从categoryInfo中删除A2附加器,并从categoryData中删除A1附加器。
配置文件
log4j.rootCategory=INFO, A1
log4j.Categoty=INFO, A2
log4j.appender.A1=org.apache.log4j.FileAppender
log4j.appender.A1.fileName=A1.log
log4j.appender.A1.layout=org.apache.log4j.BasicLayout
log4j.appender.A2=org.apache.log4j.FileAppender
log4j.appender.A2.fileName=A2.log
log4j.appender.A2.layout=org.apache.log4j.BasicLayout代码
try
{
log4cpp::PropertyConfigurator::configure("conf");
}
catch (log4cpp::ConfigureFailure e)
{
cout<<"Log4cpp Error: "<<e.what()<<endl;
}
log4cpp::Category& categoryInfo = log4cpp::Category::getInstance("A1");
log4cpp::Category& categoryData = log4cpp::Category::getInstance("A2");
categoryInfo.setAdditivity(true);
categoryData.setAdditivity(true);
categoryData.setPriority(log4cpp::Priority::WARN);
categoryInfo.removeAppender(log4cpp::Appender::getAppender(std::string("A2")));
categoryData.removeAppender(log4cpp::Appender::getAppender(std::string("A1")));发布于 2011-11-17 14:41:51
我不确定我是否明白你的意思。
但是你是不是把Category(Logger)和Appender搞混了?
根据我在Log4J中的经验,您的配置应该是这样的:
log4j.appender.A1=org.apache.log4j.FileAppender
log4j.appender.A1.fileName=A1.log
log4j.appender.A1.layout=org.apache.log4j.BasicLayout
log4j.appender.A2=org.apache.log4j.FileAppender
log4j.appender.A2.fileName=A2.log
log4j.appender.A2.layout=org.apache.log4j.BasicLayout
log4j.rootCategory=ERROR, A1
log4j.category.data=INFO, A1 # only A1 in data logger
log4j.category.info=INFO, A2 # only A2 in info logger在您的代码中,只需获取类别"data“和"info”,即可获得具有所需行为的记录器
https://stackoverflow.com/questions/8162592
复制相似问题