Logging 如何在wso2中启用应用程序日志?
如何在APIM_HOME>/repository/conf/log4j2.properties文件中启用应用程序日志(在WSO2中发布的API)?我浏览了3.0.0文档()并尝试为我的应用程序组件配置日志记录,但在wso2carbon.log中看不到特定于应用程序的日志 通过使用自定义中介,我可以记录完整的请求/响应,但我希望根据我在WSO2的log4j2.properties文件中设置的日志级别,记录代码中的所有“log.xxx()”行。我在代码中使用了slf4j记录器,因此我尝试为“org.slf4j”包启用日志记录,也尝试为我的应用程序的特定包启用日志记录,但两者都不起作用(下面的“applogger”被添加到同一文件中以逗号分隔的记录器列表中:Logging 如何在wso2中启用应用程序日志?,logging,wso2,log4j2,slf4j,wso2carbon,Logging,Wso2,Log4j2,Slf4j,Wso2carbon,如何在APIM_HOME>/repository/conf/log4j2.properties文件中启用应用程序日志(在WSO2中发布的API)?我浏览了3.0.0文档()并尝试为我的应用程序组件配置日志记录,但在wso2carbon.log中看不到特定于应用程序的日志 通过使用自定义中介,我可以记录完整的请求/响应,但我希望根据我在WSO2的log4j2.properties文件中设置的日志级别,记录代码中的所有“log.xxx()”行。我在代码中使用了slf4j记录器,因此我尝试为“org.
# application logs
logger.applogger.name = org.slf4j
logger.applogger.level = DEBUG
logger.applogger.name = my.application.package
logger.applogger.level = DEBUG
我还检查了这些(,)与日志记录相关的问题,但找不到解决问题的明确答案。当我尝试通过以下链接从carbon console启用消息跟踪时,我发现以下错误:
error
Cannot set eventing configuration. Backend server may be unavailable.; nested exception is:
org.apache.axis2.AxisFault: unknown - An error has occurred. Please refer the logs for more details.
在日志中:
TID: [-1234] [] [2020-02-11 04:56:48,913] ERROR {org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver} - Exception occurred while trying to invoke service method configureEventing java.lang.NullPointerException
at org.wso2.carbon.analytics.message.tracer.handler.conf.RegistryPersistenceManager.updateConfigurationProperty(RegistryPersistenceManager.java:84)
.............................
TID: [-1234] [] [2020-02-11 04:56:48,922] ERROR {org.wso2.carbon.analytics.message.tracer.handler.ui.MessageTracerHandlerAdminClient} - Cannot set eventing configuration. Backend server may be unavailable. org.apache.axis2.AxisFault: unknown
at org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:531)
通过使用自定义中介,我能够记录完整的
请求/响应,但我希望记录所有“log.xxx()”行
根据我在log4j2.properties中设置的日志级别,在我的代码中包含
我在代码中使用slf4j记录器,所以我尝试启用日志记录
对于“org.slf4j”包,并尝试为我的应用程序的
特定的软件包,但两者都不起作用(添加了下面的“applogger”)
要在同一文件中列出逗号分隔的记录器,请执行以下操作:
# application logs
logger.applogger.name = org.slf4j
logger.applogger.level = DEBUG
logger.applogger.name = my.application.package
logger.applogger.level = DEBUG
logger.applogger.name=org.slf4j
logger.applogger.level=调试
logger.applogger.name=my.application.package
logger.applogger.level=调试
似乎您重复添加了相同的名称。请按如下方式添加以下应用程序记录器:
logger.applogger.name = my.application.package
logger.applogger.level = DEBUG
并将其设置为记录器配置:
loggers = AUDIT_LOG, trace-messages, org-apache-coyote, com-hazelcast, Owasp-CsrfGuard, org-apache-axis2-wsdl-codegen-writer-PrettyPrinter.... org-wso2-carbon-apimgt-gateway-mediators-BotDetectionMediator,correlation, JAGGERY_LOG, applogger
您不需要将记录器名称设置为
org.slf4j
。您应该只指定组件的包名称。检查后端实现是否正在使用log4J2进行日志记录。如果没有,则可能由于依赖项版本错误而出现问题。自定义中介中使用的log4j版本是什么?我没有指定log4j版本在我的自定义中介中添加了sion。只有这个被添加到序列中:
我只是在自定义中介中临时添加了这个,以测试我是否可以记录整个响应。作为一项永久措施,在文档之后,我希望通过log4j2.properties文件添加日志。对不起。我以为您正在使用自定义类中介。所以您的要求是记录请求和响应,并通过添加自定义中介来实现。您能解释一下您正在谈论的应用程序吗?我不太清楚您使用log4j2.properties尝试了什么?应用程序:我在WSO2 API-m中发布的后端API。要求:我有log.info(),log.debug()我希望在一些日志中看到API代码中的语句(例如:wso2carbon.log)我无法做到这一点。这就是log4j2.properties的用武之地。我只是附带提到,完整的请求/响应日志记录是通过自定义中介进行的,但这与我在代码中记录INFO/DEBUG/ALL语句的实际需求是不同的。希望这能有所帮助。我没有重复添加applogger名称。它们我分别添加了这两种方法,以尝试两种方法来查看是否有任何效果(我在代码中使用slf4j记录器,因此我尝试为“org.slf4j”包启用日志记录,也尝试为我的应用程序的特定包启用日志记录,但两种方法都不起作用)。如果我的后端实现不使用log4j2,我可以做什么来获取日志?因为我们在后端实现中不使用log4j2,那么可以做什么来在wso2日志中生成日志语句?