当前位置: 首页 > 知识库问答 >
问题:

如何使用log4j2将一些额外的信息(对象)发送到自定义附加器?

施慈
2023-03-14

我在我的项目中使用了log4j2,就像控制器塔一样。并使用一些自定义的日志附加器将websocket事件、snmp陷阱事件、insert事件发送到数据库。

数据库追加器:从customObject获取错误代码,从customObject获取消息

对不起,我的英语太差了。任何帮助都将不胜感激。

共有1个答案

百里鸿祯
2023-03-14

我找到了解决办法。log4j2具有消息接口。我可以实现这个接口来发送自定义信息。就像

public class CustomLogMessage implements Message {
  private String oid;
  private long errorCode;
  private String msg;
....
}

在自定义日志附加器中,我可以将消息转换为CustomLogMessage,并获取信息。就像

@Override
public void append(LogEvent event) {
    Message message = event.getMessage();
    if(message instanceof CustomLogMessage) {
        CustomLogMessage customLogMessage = (CustomLogMessage) message;
        System.out.println(customLogMessage.getOid());
        System.out.println(customLogMessage.getErrorCode());
        System.out.println(customLogMessage.getFormattedMessage());
    }
}
 类似资料:
  • 我在为我的Spring Boot应用程序创建一个自定义附加器方面面临着挑战。将引发以下异常: Spring Boot版本:2.1.7 log4j2.properties: 注意:在删除log4j2.properties中的appender引用时,日志会写入log4j2.properties中提到的路径中的文件。因此,问题在于customappender集成。

  • 问题内容: 我有我的自定义Java对象,希望利用JVM的内置序列化将其发送到Kafka主题,但是序列化失败并出现以下错误 org.apache.kafka.common.errors.SerializationException:无法将com.spring.kafka.Payload类的值转换为value.serializer中指定的org.apache.kafka.common.serializ

  • 我有我的自定义Java对象,并希望在构建序列化中利用JVM将其发送到Kafka主题,但序列化失败,出现以下错误 org.apache.kafka.Common.Errors.SerializationException:无法将类com.spring.kafka.payload的值转换为value.Serializer中指定的类org.apache.kafka.Common.Serializatio

  • 我创建了一个自定义追加器,但在运行测试时没有调用它。以下是这些属性的外观: 我的appender被称为WindowsEventLogappender。知道我的档案有什么问题吗?我看到了控制台测试消息,但没有看到来自我的appender的消息。现在我只是在我的自定义追加器中做一个system.out.println来验证它是否被调用。

  • /** 自定义消息发送接口(目前只支持文本消息发送) @param chatController 聊窗实体(必须是小能SDK创建的聊窗实体NtalkerChatController类型) @param type 消息类型: 11:文本消息 12:图片消息 13:语音消息 14:视频消息 @param message 消息内容 */ NSString *str = @“自定义文本消息test”;

  • 我正试图发送一个授权令牌,但我的服务器不知何故没有接收它。 //service.ts } //endpoint //标记过滤器