@MessageLogger 和@MessageBundle
@MessageLogger and @MessageBundle
我使用 jboss-logging。根据https://jboss-logging.github.io/jboss-logging-tools/#message-bundle-interfaces,有两种类型:
- @MessageLogger 用于记录消息
- @MessageBundle 用于异常和字符串消息
我不知道内部是如何处理的,但使用
@MessageLogger(projectCode = "TESTLOGGER", length = 3)
public interface TestLogger {
// This is not a log message, but a string message
@Message(id=1, value = "invalid {0}", format = Message.Format.MESSAGE_FORMAT)
void test(String dateString);
// this is a typical log message
@LogMessage
@Message(id=2, value = "invalid {0}", format = Message.Format.MESSAGE_FORMAT)
void test(String dateString);
// this is a typcial exception
@Message(id = 3, value = "Invalid '%s'")
IllegalArgumentException invalidPermissionAction(String action);
}
}
也有效。所以我假设我可以将日志消息、异常和字符串消息放在 @MessageLogger
中,并且不需要用 @MessageBundle
分隔它们。我对吗?这种方法是否有任何隐藏的限制?
没错。您可以将日志消息、字符串消息和异常放在同一个文件中。
我使用 jboss-logging。根据https://jboss-logging.github.io/jboss-logging-tools/#message-bundle-interfaces,有两种类型:
- @MessageLogger 用于记录消息
- @MessageBundle 用于异常和字符串消息
我不知道内部是如何处理的,但使用
@MessageLogger(projectCode = "TESTLOGGER", length = 3)
public interface TestLogger {
// This is not a log message, but a string message
@Message(id=1, value = "invalid {0}", format = Message.Format.MESSAGE_FORMAT)
void test(String dateString);
// this is a typical log message
@LogMessage
@Message(id=2, value = "invalid {0}", format = Message.Format.MESSAGE_FORMAT)
void test(String dateString);
// this is a typcial exception
@Message(id = 3, value = "Invalid '%s'")
IllegalArgumentException invalidPermissionAction(String action);
}
}
也有效。所以我假设我可以将日志消息、异常和字符串消息放在 @MessageLogger
中,并且不需要用 @MessageBundle
分隔它们。我对吗?这种方法是否有任何隐藏的限制?
没错。您可以将日志消息、字符串消息和异常放在同一个文件中。