草庐IT

exception-logging

全部标签

java - 如何配置 Log4J2

我现在花了几个小时试图解决这个问题,但我完全不知所措。我发现新的配置过程不必要地复杂。我有一个带有web.xml文件的Servlet,其中包含以下内容:log4jConfigurationfile:///etc/myApp/log4j2.xml好像没什么效果。我使用的是Tomcat7.0.42,我已经删除了catalina.properties文件中对log4j*.jar的所有引用。我的应用程序中的日志仍在发送,但它们只是发送到System.out,没有我指定的格式。所以,我试着自己动手做:InputStreamin=newFileInputStream(newFile("/etc/m

java - 是否有一个 java8 标准库类表示 "possibly with exception"与 java.util.Optional 表示 "possibly null"的方式相同?

我有一个名为sayCalculationOutcome的类(class)和FileHashOutcome.他们的构造函数有(ActualResult,Throwable)参数,并在CompletionStage链的末尾我有handle(XxxOutcome::new).如果我可以写成sayPossiblyWithError可能会使意图更清晰并节省一些样板文件.编辑:人们要求示例代码...classFileHashOutcome{privatefinalStringhash;privatefinalThrowablethrowable;FileHashOutcome(Stringhash

exception - 如何在java中检索有用的系统信息?

在Java应用程序中哪些系统信息有用-特别是在跟踪异常或其他问题时?我正在考虑有关异常、java/os信息、内存/对象消耗、io信息、环境/enchodings等的详细信息。 最佳答案 除了显而易见的-异常堆栈跟踪-您可以获得的信息越多越好。所以你应该得到所有的系统属性以及环境变量。此外,如果您的应用程序有一些设置,请获取它们的所有值。当然,您应该将所有这些信息放入您的日志文件中,为了简单起见,我使用了System.out她:System.out.println("----JavaSystemProperties----");Sys

java - log4j配置文件错误检测

我目前正在使用log4j编写一个记录器。加载log4j.properties或log4j.xml文件后,我想知道是否有办法检测记录器配置文件是否有效。如果它无效,我希望改为加载默认设置(位于另一个文件中)。谢谢 最佳答案 我们通过在加载配置之前重定向System.err并检查错误是否记录到流中来解决了这个问题:classConfigurationLoader{classLog4jConfigStderrStreamextendsByteArrayOutputStream{privateintlineCount;privateStri

java.sql.SQLException : Io exception: Broken pipe how to recover without restart? 异常

在我的应用程序中,我使用到Oracle的连接,当连接丢失并尝试重新连接时,我收到异常:java.sql.SQLException:Ioexception:Brokenpipeatoracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:124)atoracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:161)atoracle.jdbc.driver.DatabaseError.throwSqlException(Data

java - 如何在 log4j.properties 中加密密码?

有什么方法可以在log4j.properties中加密密码以下是我的appenderlog4j.appender.DB=org.apache.log4j.jdbc.JDBCAppenderlog4j.appender.DB.URL=jdbc:mysql://localhost:3306/anilpracticelog4j.appender.DB.driver=com.mysql.jdbc.Driverlog4j.appender.DB.user=rootlog4j.appender.DB.password=P@ssw0rdlog4j.appender.DB.sql=INSERTINTO

java - 如何为 log4j2 RollingFileAppender 进行编程配置

我在没有配置文件的情况下以编程方式使用log4j2,但在代码中配置它。我正在尝试使用log4j2RollingFileAppender来保存最后10个日志文件。我尝试使用SizeBasedTriggeringPolicy限制文件大小。大小限制有效,但它不会创建旧日志文件,只会不断删除和写入一个原始日志文件。publicstaticvoidconfigLog(){Stringdir=System.getProperty("java.io.tmpdir")+"test\\";finalLoggerContextctx=(LoggerContext)LogManager.getContext

java - Log4j(通过 Spring Boot Logging)logging.level 属性中是否允许使用通配符?

当我安装一个使用Log4j的Java应用程序(通过SpringBootLogging)时,我被告知可以通过在application.properties中包含以下行来为应用程序中使用的所有包配置日志记录级别文件:日志记录级别。*=错误ERROR可以是我想使用的任何日志记录级别。但是,当我将级别从一个值更改为另一个值时,无论我使用什么值,我都发现日志中会出现低至DEBUG的日志消息。最终,我发现使用特定的包名称我可以控制要记录的最低级别。也就是说,logging.level.org.orgname.appname=ERROR会做我想做的事。日志级别属性是否支持像“*”这样的通配符?

java - 在 log4j 的内存 'list appender' 中

log4j是否有一个仅存储日志记录事件列表的附加程序(用于单元测试,以验证没有写入错误日志)? 最佳答案 有一个MemoryAppender,但它不是标准log4j库的一部分。您可以轻松编写自己的代码,但如果您仅将它们用于单元测试,我可能会模拟Logger并断言没有调用它。覆盖目标类中的getLogger()方法或直接在类型上设置模拟Logger。使用Jmock(内存中的例子,如有错误请见谅):publicvoidtestDoFoo(){Mockerymockery=newMockery();LoggermockLogger=moc

java - Log4J 能够从磁盘已满中恢复吗?

我们有几个java应用程序服务器在这里运行,有几个应用程序。它们都使用Log4J记录到同一个文件系统中,我们为此创建了该文件系统。有时会发生文件系统空间不足并且应用程序获取log4j:ERRORFailedtoflushwriter,java.io.IOException不幸的是,Log4J无法从此错误中恢复,因此即使在文件系统中释放空间后,也不会从该应用程序写入更多日志。除了重新启动应用程序之外,是否有任何选项(编程方式或设置方式)让Log4J再次运行? 最佳答案 我没有测试这个,但是logback的网站状态:Gracefulre