如何在 WSO2 ESB 的每个服务日志中选择主机名
How to pick host name in Per service logs in WSO2 ESB
我正在根据他们的 official link 在 WSO2 ESB 中制作每个服务日志。布局转换模式工作正常,但它没有选择 "HostName"。我不知道问题出在哪里,WSO2 在 "log4j.properties" 文件中使用了这个模式本身。但它不适用于每个服务日志。
注意:我正在使用 WSO2 ESB 4.8.1
"log4j.properties" 文件中的配置:
# Seperate LOG File for MyService Service
log4j.category.SERVICE_LOGGER.MyService=INFO, MyService_PROXY_APPENDER
log4j.additivity.SERVICE_LOGGER.MyService=false
log4j.appender.MyService_PROXY_APPENDER=org.apache.log4j.DailyRollingFileAppender
log4j.appender.MyService_PROXY_APPENDER.File=logs/MyService-service.log
log4j.appender.MyService_PROXY_APPENDER.datePattern='.'yyyy-MM-dd-HH-mm
log4j.appender.MyService_PROXY_APPENDER.layout=org.apache.log4j.PatternLayout
log4j.appender.MyService_PROXY_APPENDER.layout.ConversionPattern=[%d{ISO8601}] - %5p - [%X{host}] - %c{1} - %n
这是创建单独的日志文件并记录以下输出。
输出:
[2015-01-14 12:37:34,063] - INFO - [] - MyService -
问题:
其余的转换说明符工作正常,但 [%X{host}]
不工作。
我注意到 host 和 ip MDC 条目在 log4j 转换模式中默认使用(对于 ERROR_LOGFILE、SERVICE_APPENDER, ... appender) 未在 4.8.1
中初始化
解决方法可能是您自己初始化主机的值,例如在调解开始时使用此脚本:
<script language="js"><![CDATA[
importPackage(Packages.java.net);
importPackage(Packages.org.apache.log4j);
try {
var addr = InetAddress.getLocalHost();
if (addr != null) {
var hostname = addr.getHostName();
MDC.put("host", hostname);
}
} catch (e) {
}
]]></script>
但这只是一种解决方法,我对更好的解决方案感兴趣
我正在根据他们的 official link 在 WSO2 ESB 中制作每个服务日志。布局转换模式工作正常,但它没有选择 "HostName"。我不知道问题出在哪里,WSO2 在 "log4j.properties" 文件中使用了这个模式本身。但它不适用于每个服务日志。
注意:我正在使用 WSO2 ESB 4.8.1
"log4j.properties" 文件中的配置:
# Seperate LOG File for MyService Service
log4j.category.SERVICE_LOGGER.MyService=INFO, MyService_PROXY_APPENDER
log4j.additivity.SERVICE_LOGGER.MyService=false
log4j.appender.MyService_PROXY_APPENDER=org.apache.log4j.DailyRollingFileAppender
log4j.appender.MyService_PROXY_APPENDER.File=logs/MyService-service.log
log4j.appender.MyService_PROXY_APPENDER.datePattern='.'yyyy-MM-dd-HH-mm
log4j.appender.MyService_PROXY_APPENDER.layout=org.apache.log4j.PatternLayout
log4j.appender.MyService_PROXY_APPENDER.layout.ConversionPattern=[%d{ISO8601}] - %5p - [%X{host}] - %c{1} - %n
这是创建单独的日志文件并记录以下输出。
输出:
[2015-01-14 12:37:34,063] - INFO - [] - MyService -
问题:
其余的转换说明符工作正常,但 [%X{host}]
不工作。
我注意到 host 和 ip MDC 条目在 log4j 转换模式中默认使用(对于 ERROR_LOGFILE、SERVICE_APPENDER, ... appender) 未在 4.8.1
中初始化解决方法可能是您自己初始化主机的值,例如在调解开始时使用此脚本:
<script language="js"><![CDATA[
importPackage(Packages.java.net);
importPackage(Packages.org.apache.log4j);
try {
var addr = InetAddress.getLocalHost();
if (addr != null) {
var hostname = addr.getHostName();
MDC.put("host", hostname);
}
} catch (e) {
}
]]></script>
但这只是一种解决方法,我对更好的解决方案感兴趣