log4j不同级别的细节

时间:2015-12-01 09:45:32

标签: java logging log4j

我正在使用log4j 1.2,我希望实现以下行为:

我希望能够从包中的所有类进行登录。日志应该以详细的版本(包括信息和调试消息)写入文件,但我希望收到一个简短的版本(错误和致命)作为字符串。

从文档我猜测我可能必须定义两个不同的记录器实例,它们是祖先或彼此并为它们分配appender。但我既不知道细节,也不知道这是否是实现这种行为的预期方式。

有人可以给我一个提示吗?

2 个答案:

答案 0 :(得分:1)

您应该能够使用相同的记录器,只需对处理程序应用过滤器,即设置控制台处理程序的日志级别(我假设您的意思是"作为字符串")到{{ 1}}。

答案 1 :(得分:1)

仅定义一个影响两个文件追加器的记录器:一个具有级别错误,另一个具有调试级别。级别过滤将在appender中完成。

    (Select Distinct concat(d.FirstName, ' ', d.LastName) as 'Donor',
        sum(a.amount) as 'Total Paid', 0 as Pocket 
        From Donor d, Pledge p, Payment a
        Where d.DonorId=p.DonorId
        and p.pledgeId = a.pledgeId
        group by d.donorid)

        union all

    (Select Distinct concat(d.FirstName, ' ', d.LastName) as 'Donor',
        0 as 'Total Paid',sum(a.amount) as 'Pocket'
        From Donor d, Pledge p, Payment a
        Where (a.CompanyId is null) 
        and d.DonorId=p.DonorId
        and p.pledgeId = a.pledgeId
        group by d.donorid);