我正在使用Java日志记录将我的应用程序的日志消息写入日志文件和其他目的地。将日志级别设置为FINE后,我还会从AWT/Swing收到(不需要的)消息,例如:{0},whengrabbed{1},contains{2}和其他人。查看JDK源代码(参见here),可以看到相应记录器的名称是sun.awt.X11.grab.XWindowPeer。我从Java日志记录框架中了解到,此日志记录处理程序应从其父类继承其日志级别,如sun.awt。我尝试了以下方法:Logger.getLogger("sun.awt").setLevel(Level.OFF);但AWT/Swing调试消息仍然出现
我正在使用slf4j+logback登录我们的应用程序。早些时候我们使用的是jcl+log4j,最近搬家了。由于我们应用中的日志量很大,在生产环境中有可能磁盘已满。在这种情况下,我们需要停止日志记录,应用程序应该可以正常工作。我从网上发现,我们需要轮询logbackStatusManager以查找此类错误。但这将为应用程序添加对logback的依赖。对于log4j,我发现我们可以创建一个Appender,它可以在这种情况下停止记录。这将再次导致应用程序依赖于log4j。有没有办法只使用slf4j来配置它,或者有任何其他机制来处理这个问题? 最佳答案
我正在尝试调整一些logback功能(自定义Appenders等)。为了测试它,我想配置Logback并直接调用其日志记录方法,而无需通过sl4j。这个奇怪要求的原因是能够在其他SLF4J桥可用的环境中测试logback功能。所以我想做invokingJoranConfiguratordirectly时描述的事情没有引用SLF4J。 最佳答案 有一种方法可以找出答案。这是您如何配置LOGBack的示例//HerewecreatecontextLoggerContextloggerContext=newLoggerContext();
有没有办法将垃圾收集信息(例如-XX:+PrintGCDetails或-verbose:gc的输出)转发到Java中的记录器应用程序(在我的例子中是sl4j+logback)? 最佳答案 这些消息是由JVMnative进程生成的,而不是来自Java代码,因此您可以使用-Xloggc将输出重定向到文件(无旋转)Howtoredirectverbosegarbagecollectionoutputtoafile?直接通过管道传输标准输出(多个旋转选项)Logrotationofstdout?Rollinggarbagecollector
如果我将日志级别设置为DEBUG,所有日志级别>=DEBUG的消息都将被记录/打印。但是我是否可以将日志级别设置为仅DEBUG,以便打印日志级别仅为DEBUG的消息。或者可以给出一个范围,比如打印所有日志级别为>=DEBUG但 最佳答案 或许您可以使用LevelMatchFilter?Atsomesituation,Youhavetowritelogstodifferentoutputsaccordingtothelevel.howcanitbedonebysimplyconfigurationofLog4j?Therearesom
我正在从Log4j切换到Logback,但我还没有成功地让Logback工作。我已将logback.xml放在我的EclipseJava项目的根目录中,下面是它的内容:myApp.log%date%level[%thread]%logger{10}[%file:%line]%msg%n%msg%n下面是我的Main.java的相关内容:importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;publicclassMain{staticfinalLoggerlogger=LoggerFactory.getLogger(Main.class
我不知道要在我计算机上的Tomcat上设置catalina.out,如何设置以及设置什么。我在WindowsXP上使用Tomcat6.0.28压缩版。要启动服务器,我只需运行startup.bat-file。我做错了什么吗?!提前感谢您的任何建议。穆尔[编辑]所有记录(异常或System.out)都将写入控制台窗口。在哪里设置,它们将被写入catalina.out?正如我在我的一条评论中所写,如果我使用安装版本安装Tomcat,所有消息都会出现在stdout_YYYYMMDD.log中,我看不到在哪里更改它。 最佳答案 看起来Win
有没有办法在LogBack中配置SMTPAppender以满足以下条件?将所有异常分组到一条消息中仅在发生异常时发送每日日志报告仅在一天中的特定时间发送一次报告,将其分组在一封电子邮件中。我当前的实现远未实现上述功能,但目前它会在发生异常时发送3封电子邮件-异常消息、堆栈跟踪和缓冲区刷新。11000%d{HH:mm:ss.SSS}%-55(%X{user}%level[%thread]%logger{20})-%msg%nSERVERPORTfalseSENDERRECIPIENTSUBJECT%d{HH:mm:ss.SSS}%-55(%X{user}%level[%thread]%l
我有一个公共(public)日志配置问题。我希望它使用SimpleLog(而不是java.util.logging)并记录级别>=debug(而不是信息)的所有消息。 最佳答案 根据commons-loggingdocs,您应该能够通过将commons-logging.properties文件放置在类路径的根目录中,使用以下条目显式配置它以使用SimpleLog:org.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog然后您可以configure
我是第一次尝试使用SLF4J-Log4j。在每个Java类中,我都定义了一个记录器,如下所示:privateorg.slf4j.Loggerlogger=org.slf4j.LoggerFactory.getLogger(.class);(当然,我确保slf4-log4j12-1.6.4.jarJAR在类路径中!)但是每当我去使用记录器时,比如logger.debug("Somethinginterestinghappened");或logger.error("Anerroroccurred");,我没有在我的日志文件中看到它们的输出。然而,没有发生异常,应用程序(它实际上是一个部署到