Tag: logging

Java Logger未在Netbeans中记录输出

我正在Netbeans中使用Maven开始一个Java项目。 我写了一些代码来使用Logger类进行日志记录。 但是,日志记录似乎不起作用。 在我的程序开始时,我运行: Logger.getLogger(ProjectMainClass.class.getName()).setLevel(LOG_LEVEL); Logger.getLogger(ProjectMainClass.class.getName()).log(LOG_LEVEL, “Hello Logger”); 第二行从不将我的消息输出到Netbeans的输出屏幕。 System.out.print语句确实显示在输出中。 我觉得我需要设置一些配置选项。 我已经四处寻找,但我无法弄明白(过去我总是使用System.out和调试器进行调试,但我认为记录器function更强大(更令人困惑))。

使用java stream过滤谓词时记录filter的结果

场景是我创建了不同类型的filter,它们根据对象的属性过滤一些对象的列表。 因此,我创建了一个由每个filterinheritance的AbstractObjectFilter类。 AbstractObjectFilter.java public abstract class AbstractEventFilter { protected abstract Predicate isEligible(); public List getFilteredEvents(final List events) { return events.stream().filter(isEligible()).collect(Collectors.toList()); } } 所以现在每个filter都扩展了这个类并覆盖了isEligible(),并且在该函数中它根据其属性返回谓词。 例如: – MinNumOfPrizesFilter.java public class MinimumNumOfPrizesFilter extends AbstractEventFilter { private int minimumNumOfPrizes; public MinimumNumOfPrizesFilter(@NonNull int minimumNumOfPrizes) { this.minimumNumOfPrizes = minimumNumOfPrizes; } @Override protected Predicate isEligible() { return event -> event.getPrizeCount() >= minimumNumOfPrizes; […]

如何为JUnit测试设置Loglevel

我在我的课程中使用java日志。 例: public class MyClass { private static Logger logger = Logger.getLogger(MyClass.class.getName()); …. } 当我为该课程编写JUnit测试时,我想将Loglevel设置为’FINE’。 我试过了: @Before public void setup() throws PluginException { Logger.getGlobal().setLevel(Level.FINE); …. } 但这没有效果。 使用Java Logging时,如何在JUnit Test中控制loglevel? 我正在使用Maven运行我的测试。

Log4j2无法使用Sprint Boot找到日志记录实现

我试图在弹簧启动时使用log4j2时遇到此错误。 ERROR StatusLogger Log4j2 could not find a logging implementation. Please add log4j-core to the classpath. Using SimpleLogger to log to the console… 我已经遵循了这个指南: http : //docs.spring.io/spring-boot/docs/current/reference/html/howto-logging.html#howto-configure-log4j-for-logging – 并且还添加了来自https://logging.apache.org/log4j/2.x/maven-artifacts.html的两个log4j2依赖项 我的依赖:树看起来像这样: [INFO] — maven-dependency-plugin:2.10:tree (default-cli) @ musikkjulekalender — [INFO] no.saiboten:musikkjulekalender:war:1.0-SNAPSHOT [INFO] +- org.springframework.boot:spring-boot-starter-web:jar:1.4.0.RELEASE:compile [INFO] | +- org.hibernate:hibernate-validator:jar:5.2.4.Final:compile [INFO] | | +- javax.validation:validation-api:jar:1.1.0.Final:compile [INFO] | | +- […]

无法使用log4j DailyRollingFileAppender将日期附加到文件名

您好我试图使用log4j DailyRollingFileAppender将当前日期附加到文件名,但它无法正常工作。 我使用了如下配置。 请为此建议一个解决方案 性能 log4j.rootLogger = DEBUG, rollingAppender log4j.appender.rollingAppender=org.apache.log4j.DailyRollingFileAppender log4j.appender.rollingAppender.DatePattern=’.’yyyy-MM-dd log4j.appender.rollingAppender.File=F:/temp/app.log log4j.appender.rollingAppender.layout=org.apache.log4j.PatternLayout log4j.appender.rollingAppender.layout.ConversionPattern=[%p] %d %c %M – %m%n 我期待日志文件为app2014-11-07.log,但它仍然是app.log

如何在bean实例化之前记录spring引导应用程序的所有活动属性?

有一个问题要求记录活动配置,有一个正确的答案,但问题是只有在所有bean都被正确实例化的情况下才会记录配置。 如果应用程序在启动时崩溃,我甚至(主要)记录所有属性。 我的问题更具体: 如何在bean实例化之前记录spring引导应用程序的所有活动属性?

在logging.properties中自定义日志格式

我在Tomcat 7中配置日志格式需要一些指导。我在日志记录配置方面比较新,所以请原谅幽默这个问题,如果它看起来有点基础…… 使用logging.properties中配置的Tomcat中的标准日志记录显示以下格式的日志: Jun 6, 2011 9:27:00 AM com.class.Control_WS callWebService INFO: Response received from Control_WS:[Y] 我想自定义这些日志以压缩到一行,并将日期格式扩展到包括毫秒。 例: [2011-05-04T11:37:00.037|INFO|javax.enterprise.system.stream.out|Response recieved from Control_WS:[Y]] 这是我可以使用JUL做的事情还是我需要切换到LOG4J? 任何可以提供的简单示例或方向都将非常受欢迎。

有没有一种简单的方法为每个类创建一个记录器实例?

我现在使用静态方法来记录(因为我发现登录Android非常容易),但现在我需要为不同的类配置不同的appender,所以我遇到了静态日志记录方法的问题。 我读了Log4J:创建Logger实例的策略 ,我注意到我现在是时候更改日志记录策略了,所以我需要以下代码到我的类,需要一个特殊的记录器。 private static final Logger logger = Logger.getLogger(XXXX.class); 我觉得既然这是重复的工作,那么我们有什么方法可以避免向每个类添加重复的代码,或者只是编写更少的代码。 AOP或dependency injection可以做这样的工作吗? 我正在使用log4j和Spring,但是其他任何方法都将受到高度赞赏。

如何在使用hadoop时使用logger api编写java日志文件

我写了一个地图减少我想要调试的代码。 为了做到这一点,我无法使用标准输出,因为除非发生错误,否则Hadoop平台不会将其打印到屏幕上。 相反,我试图使用记录器,以创建日志文件。 我使用处理程序将它拆分为两个文件,遗憾的是,“严重”的日志文件是空的,一般日志文件只记录主线程中发生的事情,而不是映射减少函数。 问题如下: 有没有hadoop和日志文件的问题,还是我的记录器配置有问题? 如果是这样,如何纠正它。 日志配置代码:我使用一个记录器来处理整个应用程序(这次是root logger) public static Logger configureLogging() { try { logger=Logger.getLogger(“”); //FileSystem hdfs=FileSystem.get(URI.create(Misc.S3FS),getConfiguration()); logger.setLevel(Level.ALL); //StreamHandler handler=new StreamHandler(hdfs.create(new Path(Misc.LOGS_PATH+”mylog.log”)),new SimpleFormatter()); FileHandler handler=new FileHandler(Misc.LOGS_PATH+”mylog.xml”,true); FileHandler severeHandler=new FileHandler(Misc.LOGS_PATH+”mylogSevere.xml”,true); severeHandler.setLevel(Level.INFO); logger.addHandler(handler); logger.addHandler(severeHandler); } catch (Exception e) { e.printStackTrace(); } return logger; }

SLF4J是否可以在multithreading应用程序中用于记录到数据库?

我正在研究multithreading应用程序。 我已经在使用Log4j将语句记录到文件中。 我最近一直在研究登录Mysql数据库的可能性。 记录组件必须在重负载下可靠并且必须是线程安全的。 我听说过SFL4J。 我对SLF4J的理解是它只是一个外观或抽象层。 我想知道SLF4J是否是一个用于multithreading应用程序的良好数据库日志记录解决方案? 在负载很重的情况下,添加一个层(如缓冲区或队列)并让线程记录到它而不是直接调用日志记录线程是一个好主意(日志记录线程会发送发现的语句在队列中逐个到数据库)? 任何提示,最佳实践或代码示例将非常感激, 问候,