Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Logging 如何在wso2中启用应用程序日志?_Logging_Wso2_Log4j2_Slf4j_Wso2carbon - Fatal编程技术网

Logging 如何在wso2中启用应用程序日志?

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.

如何在APIM_HOME>/repository/conf/log4j2.properties文件中启用应用程序日志(在WSO2中发布的API)?我浏览了3.0.0文档()并尝试为我的应用程序组件配置日志记录,但在wso2carbon.log中看不到特定于应用程序的日志

通过使用自定义中介,我可以记录完整的请求/响应,但我希望根据我在WSO2的log4j2.properties文件中设置的日志级别,记录代码中的所有“log.xxx()”行。我在代码中使用了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
我还检查了这些(,)与日志记录相关的问题,但找不到解决问题的明确答案。当我尝试通过以下链接从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日志中生成日志语句?