在 WSO2 ESB 5.0.0 中使用 SLF4J 日志框架
Posted Calvin Chan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在 WSO2 ESB 5.0.0 中使用 SLF4J 日志框架相关的知识,希望对你有一定的参考价值。
在 WSO2 ESB 5.0.0 中使用 slf4j 日志框架
一、所需 jar 包
由于 WSO2 ESB 5.0.0 自带的日志组件使用的是 log4j,并提供有 log4j-slf4j-impl jar 包,所以只需导入以下三个包:
可以到 mvnrepository 下载 jar 包。
把 jar 包放到 {WSO2 ESB 5.0.0}\\lib 目录下
导入 jar 到项目。
二、修改日志输出级别
打开 {WSO2 ESB 5.0.0}\\repository\\conf\\log4j.properties 文件
把第 38 行开头的 ERROR 改为 INFO,保存,重启 WSO2 ESB。
不修改的话只会打印 ≥ ERROR 级别的日志。
三、实例测试
1、添加自带的 Log 日志组件。
2、Mediator Project 类
package com;
import org.apache.synapse.MessageContext;
import org.apache.synapse.mediators.AbstractMediator;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class TestMyModel extends AbstractMediator {
private String property_name;
public String getProperty_name() {
return property_name;
}
public void setProperty_name(String property_name) {
this.property_name = property_name;
}
//SLF4J 日志记录器
private static final Logger logger = LoggerFactory.getLogger(TestMyModel.class);
public boolean mediate(MessageContext context) {
// TODO Implement your mediation logic here
String xmldata = (String)context.getProperty(property_name);
//System.out.println("xmldata: " + xmldata);
logger.info("info xmldata: {}", xmldata);
logger.warn("warn xmldata: {}", xmldata);
logger.error("error xmldata: {}", xmldata);
//log 是 wso2 自带的日志记录器,在扩展了 AbstractMediator 的类中不用声明可以直接使用。
log.debug("receive debug");
//log.info("receive info");
//log.warn("receive warn");
//log.error("receive error");
String resp = "<DATA>\\n" +
" <DATAINFOS>\\n" +
" <PUUID>11111</PUUID>\\n" +
" <SYNCODE>ZWY</SYNCODE>\\n" +
" <DATAINFO>\\n" +
" <DESC1>ABC</DESC1>\\n" +
" </DATAINFO>\\n" +
" </DATAINFOS>\\n" +
" </DATA>";
context.setProperty("resp", resp);
return true;
}
}
3、Postman 测试
Postman 进行 POST 请求测试。
控制台日志输出:
[2021-07-28 20:13:49,333] INFO - LogMediator To: /test_my_model, MessageID: urn:uuid:c51c534d-9cdd-4bdb-9ee6-d8fe40f5fb47, Direction: request
[2021-07-28 20:13:49,334] INFO - test_my_model To: /test_my_model, MessageID: urn:uuid:c51c534d-9cdd-4bdb-9ee6-d8fe40f5fb47, Direction: request
[2021-07-28 20:13:49,461] INFO - LogMediator To: /test_my_model, MessageID: urn:uuid:c51c534d-9cdd-4bdb-9ee6-d8fe40f5fb47, Direction: request
[2021-07-28 20:13:49,462] INFO - test_my_model To: /test_my_model, MessageID: urn:uuid:c51c534d-9cdd-4bdb-9ee6-d8fe40f5fb47, Direction: request
[2021-07-28 20:13:49,462] INFO - TestMyModel info xmldata: {"ESB":{"DATA":{"DATAINFOS":{"PUUID":11111,"SYNCODE":"test_my_model","DATAINFO":{"DESC1":"EFG","DESC2":"ABC","DESC3":"ABC","DESC4":"ABC","DESC5":"ABC","DESC6":"ABC","DESC7":"ABC"}}}}}
[2021-07-28 20:13:49,463] WARN - TestMyModel warn xmldata: {"ESB":{"DATA":{"DATAINFOS":{"PUUID":11111,"SYNCODE":"test_my_model","DATAINFO":{"DESC1":"EFG","DESC2":"ABC","DESC3":"ABC","DESC4":"ABC","DESC5":"ABC","DESC6":"ABC","DESC7":"ABC"}}}}}
[2021-07-28 20:13:49,464] ERROR - TestMyModel error xmldata: {"ESB":{"DATA":{"DATAINFOS":{"PUUID":11111,"SYNCODE":"test_my_model","DATAINFO":{"DESC1":"EFG","DESC2":"ABC","DESC3":"ABC","DESC4":"ABC","DESC5":"ABC","DESC6":"ABC","DESC7":"ABC"}}}}}
可以看到自带的日志组件和 SLF4J 日志框架的输出格式基本一致。
以上是关于在 WSO2 ESB 5.0.0 中使用 SLF4J 日志框架的主要内容,如果未能解决你的问题,请参考以下文章
为 WSO2 ESB 5.0.0 集群配置 MySQL 数据库
为 WSO2 ESB 5.0.0 集群配置 MySQL 数据库