java - 为我的项目创建像 Slf4j 这样的注释
问题描述
我一直在尝试用我的记录器复制@Slf4j 注释,我在网上查看了有关使用注释的指南和信息,但不知道如何将注释用于此特定目的。
Slf4j 注解在注解的类中创建一个记录器字段:
@Slf4j
public class Person {
public void doThing() {
log.info("logged a message");
//log doesn't need to be defined in this class or instantiated manually.
//The annotation automatically does:
//Logger log = Logger.getLogger(Person.class);
}
}
如果我有自己的记录器,使用相同的方法 getLogger(String) 来实例化记录器,就像 Slf4j 一样,我如何创建一个注释“@MyLogger”,例如它将复制 Slf4j?
有关注释的更多信息: https ://howtodoinjava.com/spring-boot2/logging-with-lombok/
有人可以提供一个示例类,为下面的记录器类创建这个注释吗?我真的很困惑,无法让它工作。
public class Logger {
public static Logger getLogger(Class<?> test) {
return new Logger(); //for test purpose (how logger should be inited)
}
public void info(String test) {
}
}
解决方案
@Slf4j
annotation 内置在 Lombok 中,因此您需要实现自己的 annotation。
但是,正如您所见,它并不是很简单,而且您可能还是想使用标准的日志框架。
推荐阅读
- docker - Alpine 大小和 Docker 层
- ios - SwiftUI - @Binding:来自 DatePickerView 的字符串
- reactjs - 名为导入的样式组件在单元测试中抛出错误“元素类型无效:预期为字符串 ...”
- ruby-on-rails - 在 Ruby 中自动将嵌套类转换为紧凑样式
- android - Android Logcat prune 功能坏了?
- c - 和号在函数调用中是什么意思?
- c# - 可观察集合
初始化一个新实例或删除并添加 - javascript - 隐藏日期时间选择器的日期部分的 Javascript - 仅显示小时和分钟
- python - 使用给定参数作为 Python 中另一个参数的默认值
- reactjs - 如何在 S3 上托管非静态 React SPA 应用程序