如何让 Camunda 引擎使用标准日志记录?
How to make Camunda engine use standard logging?
我开始尝试使用 Camunda 引擎并注意到它会绕过我的应用程序日志并将所有内容写入 stdout(或 stderr?)。我怎样才能让它像所有其他库一样正常播放?
就日志记录而言,应用程序具有以下依赖项(在 build.gradle
中):
// Replaced with SLF4j below. Make sure no libraries pull this as a dependency.
configurations.all {
exclude group: 'commons-logging'
}
dependencies {
compile 'org.slf4j:slf4j-api:1.7.12'
compile 'ch.qos.logback:logback-classic:1.1.3'
// Replaces Apache Commons Logging with SLF4j.
compile 'org.slf4j:jcl-over-slf4j:1.7.12'
}
因此,通过 SLF4j 或 Commons Logging 进行日志记录的库都可以。但 Camunda 显然不得不发明另一个轮子......
原来不是另一个轮子,而是java.util.logging
。也可以使用以下 JAR 将其重定向到 SLF4j:
compile 'org.slf4j:jul-to-slf4j:1.7.12'
此桥需要显式安装,但是(Java 代码):
SLF4JBridgeHandler.removeHandlersForRootLogger ();
SLF4JBridgeHandler.install ();
出于性能原因,最好将其包含在 Logback 配置中:
<!-- For java.util.logging bridging; important for Camunda! -->
<contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator">
<resetJUL>true</resetJUL>
</contextListener>
我开始尝试使用 Camunda 引擎并注意到它会绕过我的应用程序日志并将所有内容写入 stdout(或 stderr?)。我怎样才能让它像所有其他库一样正常播放?
就日志记录而言,应用程序具有以下依赖项(在 build.gradle
中):
// Replaced with SLF4j below. Make sure no libraries pull this as a dependency.
configurations.all {
exclude group: 'commons-logging'
}
dependencies {
compile 'org.slf4j:slf4j-api:1.7.12'
compile 'ch.qos.logback:logback-classic:1.1.3'
// Replaces Apache Commons Logging with SLF4j.
compile 'org.slf4j:jcl-over-slf4j:1.7.12'
}
因此,通过 SLF4j 或 Commons Logging 进行日志记录的库都可以。但 Camunda 显然不得不发明另一个轮子......
原来不是另一个轮子,而是java.util.logging
。也可以使用以下 JAR 将其重定向到 SLF4j:
compile 'org.slf4j:jul-to-slf4j:1.7.12'
此桥需要显式安装,但是(Java 代码):
SLF4JBridgeHandler.removeHandlersForRootLogger ();
SLF4JBridgeHandler.install ();
出于性能原因,最好将其包含在 Logback 配置中:
<!-- For java.util.logging bridging; important for Camunda! -->
<contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator">
<resetJUL>true</resetJUL>
</contextListener>