Log4j slf4j不解释模式布局中的方法名称

Log4j slf4j不解释模式布局中的方法名称,log4j,slf4j,Log4j,Slf4j,我在我的应用程序中使用slf4j,它在jboss容器中运行。底层框架是log4j 我们看到的问题是日志模式中的方法名(%M)和行号(%L)标记没有被正确解释 我看到的不是我的方法名,而是“debug”或“info”——换句话说,就是log4j或slf4j类中的方法。类似地,行号与代码中的行号不对应-例如,所有调试条目的行号都是104 以下是示例appender的配置方式: <appender name="catalog-log" class="org.apache.log4j.FileA

我在我的应用程序中使用slf4j,它在jboss容器中运行。底层框架是log4j

我们看到的问题是日志模式中的方法名(%M)和行号(%L)标记没有被正确解释

我看到的不是我的方法名,而是“debug”或“info”——换句话说,就是log4j或slf4j类中的方法。类似地,行号与代码中的行号不对应-例如,所有调试条目的行号都是104

以下是示例appender的配置方式:

 <appender name="catalog-log" class="org.apache.log4j.FileAppender">
 <param name="File" value="logs/catalog.log" />
 <param name="Append" value="true" />
  <layout class="org.apache.log4j.PatternLayout">
   <param name="ConversionPattern" value="%d{dd.MM.yyyy HH:mm:ss}|%c:%L|%M|%1.1p|%m  %n" />
  </layout>
 </appender>
下面是它的外观:

17.07.2013 09:43:07|com.ecommerce.CatalogAPIUnmarshallerXML:3250|populateTariff|G|adding new tariff = D 
17.07.2013 09:43:07|com.ecommerce.CatalogAPIUnmarshallerXML:3261|populateTariff|G|Found Tariff: D 
17.07.2013 09:43:07|com.ecommerce.CatalogAPIUnmarshallerXML:3287|populateTariff|G|Exit populateTariff
在我们从log4j迁移到slf4j之前,这一切都很好

有些类还没有迁移到slf4j,它们也在工作——行号和方法名显示得很好。所以怀疑的矛头指向了slf4j。或者更可能是我的配置


我们正在使用slf4j 1.5.8和log4j 1.2.16

在这方面还不走运吗?
17.07.2013 09:43:07|com.ecommerce.CatalogAPIUnmarshallerXML:3250|populateTariff|G|adding new tariff = D 
17.07.2013 09:43:07|com.ecommerce.CatalogAPIUnmarshallerXML:3261|populateTariff|G|Found Tariff: D 
17.07.2013 09:43:07|com.ecommerce.CatalogAPIUnmarshallerXML:3287|populateTariff|G|Exit populateTariff