我有以下代码:
@Slf4j
public class Main {
@Data
public static class AClass {
private String title;
}
@Data
public static class BClass extends AClass {
private Integer amount;
}
public static void main(String[] args) {
BClass bClass = new BClass();
bClass.setAmount(12);
bClass.setTitle("title");
log.info("{}", bClass);
}
}
在日志中,我只能看到来自BClass而不是AClass的字段:
17:52:28.151[main]INFO Main-Main. BClass(金额=12)
但是我想查看所有BClass字段,包括父类中的字段(标题字段)。我该怎么做?
这很正常——你看到的(特别是日志中的Main.BClass(amount=12)
部分)是toString()
方法BClass
的输出。@Data
注释正在为您创建一个toString实现。然而,lombok通常故意不包含超类信息。您应该会在@Data
注释上看到一条警告来解释这一点。解决这个问题的一种方法是在@Data
注释旁边添加@ToString(callSuper=true)
。
这与SLF4J或任何日志框架无关-它与生成的toString()
实现中的内容和不内容有关。
我将slf4j日志接口与JDK logger一起用于我的web服务项目。我实际上一直在使用Java util日志记录,目前正在考虑将slf4j与JDK logger结合使用。我在ivy中包含了slf4j-jdk14-1.7.12 jar文件依赖项。xml文件 在我的一门课上,我有以下几点: 运行这个类/方法后,我没有看到任何日志输出到控制台或任何日志文件。目前使用的java util日志框架将日志
我想在我的应用程序中使用SLF4J+logback用于两个目的--日志和审计。 14:41:57.978[main]信息AUDIT_LOGGER-110欢迎使用main 如何确保审核消息在审核记录器下只出现一次?
在我的Java应用程序中,我使用SLF4J+Logback进行日志记录。我在开发环境中使用调试级日志记录,在生产环境中使用错误级日志记录。但是有一些消息我无论如何都想要记录下来,无论日志级别如何(类似于,但使用的是logger)。 有什么切实可行的方法可以实现这一点吗?我可以使用error或更低的级别,但我想做的是给出一些信息,所以在语义上是错误的,它不是错误。 我可以在我的中为我的类定义另一个记
我最近接到的任务是开始构建一个新的Spring 3 MVC项目(在这方面我是新手)。在开普勒设置了大部分POC项目后,我有: 一个原型Web应用程序(HelloWorld样式),可以部署并在(外部)Tomcat7中工作。 已配置日志并报告给控制台: 但是当我进入我的代码使用类方法时(我尝试了和两种风格),Eclipse无法识别Logger实例中的方法: 键入 后 Eclipse 代码助手显示以下选
问题内容: 这是一个第三方应用程序,在我们的应用程序服务器上生成大量的登录信息。像这样: 如何关闭slf4j的输出?我已经在.war文件中查找了slf4j的一些配置,但没有找到任何配置。他们的网站也没有帮助 问题答案: slf4j只是实际日志后端(此处是覆盖jakarta commons日志记录)的一个漏斗,这是您必须配置的摆脱某种消息的程序。对于登录,这是适当的配置代码段: 对于log4j,它非
我在一个类中创建了3个不同的slf4j记录器: 奇怪的是,即使在调试级别配置了X.Y.Z.MyClass,MyClass-a和MyClass-b记录器也不是在调试级别记录日志,而是在配置的根级别记录日志(在我的例子中是info)。如下所示,即使为-a和-b指定特定的记录器也不起作用。在我将根更改为debug之前,它们不会在debug级别进行日志记录。真的被这个难住了,有什么想法吗?