如何根据需求修改log4j访问模式(ResultCode、ResponseTime、RemoteHOST)

如何根据需求修改log4j访问模式(ResultCode、ResponseTime、RemoteHOST),log4j,wso2,wso2esb,wso2carbon,Log4j,Wso2,Wso2esb,Wso2carbon,我正在使用wso2 esb-4.8.1 我希望使用我自己的log4j Pattern基本上我的代理服务将创建自己的日志文件,其中需要包含一些我使用此博客所做的特定信息 此配置已完成 log4j.category.SERVICE_LOGGER.PROXY_TEST=INFO, PROXY_APPENDER # log4j.additivity.PROXY_APPENDER=false log4j.additivity.SERVICE_LOGGER.PROXY_TEST=false log4j.ap

我正在使用wso2 esb-4.8.1 我希望使用我自己的log4j Pattern基本上我的代理服务将创建自己的日志文件,其中需要包含一些我使用此博客所做的特定信息

此配置已完成

log4j.category.SERVICE_LOGGER.PROXY_TEST=INFO, PROXY_APPENDER
# log4j.additivity.PROXY_APPENDER=false
log4j.additivity.SERVICE_LOGGER.PROXY_TEST=false
log4j.appender.PROXY_APPENDER=org.wso2.carbon.logging.appenders.CarbonDailyRollingFileAppender
log4j.appender.PROXY_APPENDER.File=${carbon.home}/repository/logs/${instance.log}/wso2-esb-PROXY_TEST_Proxy${instance.log}.log
log4j.appender.PROXY_APPENDER.Append=true
log4j.appender.PROXY_APPENDER.layout=org.wso2.carbon.utils.logging.TenantAwarePatternLayout
log4j.appender.PROXY_APPENDER.layout.ConversionPattern= [%T]  [%t] %a %5p %c{1} %m %n
log4j.appender.PROXY_APPENDER.layout.TenantPattern=%U%@%D [%T] [%S]
log4j.appender.PROXY_APPENDER.threshold=DEBUG
文件正在创建位置,但我希望捕获 结果代码、远程主机、响应时间,我已将其添加到我的Pattern中

%a-远程IP地址 %T-处理请求所用的时间(秒) 但是,当我启动wso2 ESB服务器时,会出现以下错误 像

在我的文件中,像这样打印pattren

**[0]**  [localhost-startStop-1] **%a**  INFO PROXY_TEST Building Axis service for Proxy service : PROXY_TEST 
[0]  [localhost-startStop-1] **%a**  INFO PROXY_TEST Adding service PROXY_TEST to the Axis2 configuration 
**[0]**  [localhost-startStop-1] **%a**  INFO PROXY_TEST Successfully created the Axis2 service for Proxy service : PROXY_TEST 
**[0]**  [PassThroughMessageProcessor-1] %a  INFO PROXY_TEST To: /services/PROXY_TEST, WSAction: http://www.openuri.org/clientRequest, SOAPAction: http://www.openuri.org/clientRequest, MessageID: urn:uuid:7853a5ed-e4d4-4b4b-ac72-c111ab44280d, Direction: request,
为什么我会这样,即使我尝试了请求和响应,但我的响应时间和远程主机没有打印。 Is wso2将不支持此r。
提前感谢

正如您在配置中看到的那样,类org.wso2.carbon.utils.logging.tenatawarePatternLayout正在执行模式处理。它是
org.apache.log4j.PatternLayout
的一个子类。两者都不知道占位符%a。但是,占位符%T应视为租户ID

要解决您的问题,您必须编写自己的模式布局类(最好扩展TenantWarePatternLayout),并在那里处理您需要的新占位符

**[0]**  [localhost-startStop-1] **%a**  INFO PROXY_TEST Building Axis service for Proxy service : PROXY_TEST 
[0]  [localhost-startStop-1] **%a**  INFO PROXY_TEST Adding service PROXY_TEST to the Axis2 configuration 
**[0]**  [localhost-startStop-1] **%a**  INFO PROXY_TEST Successfully created the Axis2 service for Proxy service : PROXY_TEST 
**[0]**  [PassThroughMessageProcessor-1] %a  INFO PROXY_TEST To: /services/PROXY_TEST, WSAction: http://www.openuri.org/clientRequest, SOAPAction: http://www.openuri.org/clientRequest, MessageID: urn:uuid:7853a5ed-e4d4-4b4b-ac72-c111ab44280d, Direction: request,