log4j以jar形式和插件形式提供。
如果它以插件形式使用,那么如何配置呢?
更新
我想使用log4j
和slf4j
来记录我的应用程序。
例如,激活器中的以下代码在调试控制台中没有任何输出:
public void start(BundleContext context) throws Exception {
super.start(context);
plugin = this;
log.info("Started");
}
我可以使用log
slf4j
private static final Logger log = LoggerFactory.getLogger(Activator.class);
或log4j
private static final Logger log = Logger.getLogger(Activator.class);
slf4j
稍后会报告一些警告
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [bundleresource://104.fwk1075417105:13/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [bundleresource://104.fwk1075417105:27/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
log4j
是沉默的。可能它会记录到不同的地方 - 因此我想配置它。
更新2
我开启了log4j.debug
,并确定需要log4j.properties
来自插件org.eclipse.xtext.logging
。此插件不是依赖项,可以从运行时配置中关闭。
那个案例log4j
开始发誓它没有记录器的附加器。
它仍然忽略了我自己的插件中的log4g.properties
。所以问题仍然存在:如何配置log4j
?
更新3
我删除了org.eclipse.xtext.logging
并将其还原后,它就不再工作了。
以下是日志:
!ENTRY org.eclipse.osgi 2 0 2014-01-28 23:37:18.016
!MESSAGE The following is a complete list of bundles which are not resolved, see the prior log entry for the root cause if it exists:
!SUBENTRY 1 org.eclipse.osgi 2 0 2014-01-28 23:37:18.017
!MESSAGE Bundle org.eclipse.xtext.logging_1.2.15.v201309030823 [107] was not resolved.
!SUBENTRY 2 org.eclipse.xtext.logging 2 0 2014-01-28 23:37:18.017
!MESSAGE Constraints from the fragment conflict with the host: Import-Package: org.eclipse.core.runtime; version="0.0.0"
!SUBENTRY 2 org.eclipse.xtext.logging 2 0 2014-01-28 23:37:18.017
!MESSAGE Constraints from the fragment conflict with the host: Import-Package: org.osgi.framework; version="1.5.0"
这是什么意思?
由于log4j
无法再找到属性文件。