草庐IT

binlog日志

全部标签

java - 如何在枚举单例中实现日志记录?

我正在使用枚举单例,但实现日志记录很麻烦。这:publicenumFoo{INSTANCE;privatefinalLoggerlog=Logger.getLogger(Foo.class.getName());...}记录器的实例化方式与我为普通Java类实例化记录器的方式相同,但是我当然会收到以下错误:Foo.java:illegalreferencetostaticfieldfrominitializer是否有等效的方法来登录枚举单例? 最佳答案 在回答您的问题时,只需将记录器设为静态...顺便说一句,我认为即使对于对象实例也

java - 在简单示例项目中更改 Spring 框架日志级别?

关注this时Spring示例我期待看到这样的输出:CreatingtablesInsertingcustomerrecordforJohnWooInsertingcustomerrecordforJeffDean...相反,我得到了一些散布在每一行之间的DEBUG日志消息:Creatingtables12:31:16.474[main]DEBUGo.s.jdbc.core.JdbcTemplate-ExecutingSQLstatement[droptablecustomersifexists]12:31:16.484[main]DEBUGo.s.jdbc.datasource.Da

java - 如何格式化我的日志消息

我想在打印到控制台之前格式化我的日志消息Logger.fine例如我如何格式化“{0}有{1}个苹果”,所以输入是John和10我更喜欢一个提供解决方案的日志记录框架,我不想单独格式化这些消息。JDK6特定的日志记录类似乎没有这些粒度。 最佳答案 使用MessageFormat:Strings=MessageFormat.format("{0}has{1}appleswithhim","John",10);或String.format:Strings=String.format("%1$shas%2$dappleswithhim",

java - 使用 log4j 在日志文件中打印线程 ID

我正在尝试在我的日志文件中打印正在执行日志记录的线程的ID。我通过log.info(Thread.currentThread().getId())在代码级别完成了它,其中“log”是Logger类对象,但这不是我真正想要的。实际上,我的应用程序是一个大型分布式应用程序,不可能在每个log.info("something")中添加Thread.currentThread().getId()代码。无论如何,我可以通过它在我的log4j.xml文件中进行任何更改并为我的代码中的每个log.info打印线程ID。这是我的log4j.xml现在我假设我可以在我的xml布局中添加一些东西来打印线程

java - 使用 ServletContextListener 和 SLF4J 在 contextDestroyed 上没有日志输出

我正在尝试向记录器写入一条消息,表明(Vaadin)servlet已停止,这使用SLF4J和Log4j2。为此,我使用了一个ServletContextListener,它会在应用程序启动时记录一条消息。但是,在contextDestroyed方法中登录时,我一直无法获得任何输出...这是我的实现:@WebListenerpublicclassVaadinLoggerimplementsServletContextListener{privatestaticfinalLoggerlogger=LoggerFactory.getLogger(VaadinLogger.class);@Ov

java - Atomikos 事务日志 com.atomikos.icatch.enable_logging=false

如果我设置com.atomikos.icatch.enable_logging=false,我想了解分布式事务功能是否适用于我的应用程序我是否理解正确,事务恢复与发生崩溃的情况相关,我们希望完全重新启动同一事务。恢复是否在同一个分布式事务中进行?我的应用程序可以容忍故障,因为故障总是可以通过新事务从头开始重新启动。这是否意味着在我的情况下可以设置com.atomikos.icatch.enable_logging=false如果不是所有分布式事务的参与者都已提交,com.atomikos.icatch.enable_logging=false是否会导致数据库状态不一致?更新在这个问题之

java - 我在这里滥用日志级别的想法吗?

我有一个案例想引入一些错误日志记录。但在这一点上,我不确定这里发生异常的频率(实验性功能,错误取决于用户输入),我有点担心堆栈跟踪会淹没日志。所以我想到了这个解决方案:catch(Exceptionex){if(LOGGER.isDebugEnabled()){LOGGER.error("Exceptionduringsave()",ex);//logwithstacktrace}else{LOGGER.error("Exceptionduringsave():{}",ex.toString());}}但我对此并不满意,因为我想滥用调试级别来记录错误级别。我使用org.slf4j.Lo

java - 清除后 Eclipse 不释放控制台(日志)内存

我的Eclipse占用空间从500MB稳步增加到1GB以上,我没有做任何特别的事情——只是运行一些日志繁重的程序。执行手动GC、关闭和重新打开项目根本没有帮助,一旦超过1GB,它就会留在那里。我运行了jvisualvm并从堆转储中发现数百兆字节是char[]表示日志输出。我养成了关闭所有停止进程的控制台的习惯,所以不是那样的。控制台缓冲区设置为1MB(字符)。我关闭了控制台View并再次打开它。我可以粘贴我的特定eclipse.ini,但我尝试了不同的GC和内存设置、不同的JVM、不同的Eclipse版本-行为仍然相同。对我来说,日志似乎在某个地方被引用卡住了,永远不会被释放。还有其他

java - 如何解释导致 OutOfMemoryError 的 G1 GC 日志?

我想知道是否有人能够向我解释如何解释导致OutOfMemoryError的一些G1GC日志?我知道堆转储是找出实际使用堆的最佳选择,但我无法获取它,因为它包含无法离开客户端站点的protected信息。我只有应用程序日志(包括来自OOME的堆栈)和G1GC日志。完整的G1GC日志包含很多细节,因此除非有人特别需要查看它们,否则我不会将它们放在这里。这些来自的特定Java版本是:>java-versionjavaversion"1.7.0_21"Java(TM)SERuntimeEnvironment(build1.7.0_21-b11)JavaHotSpot(TM)64-BitServ

java - Equinox 中的 Sling 日志记录配置

我正在尝试在Equinox项目中使用ApacheSling日志记录。它工作正常,但我无法让Sling使用我的配置文件。我正在使用标准的logback配置xml,它应该根据Slingdocumentation工作.但无论我将配置文件放在哪里,Sling都不会使用它。我的logback配置如下:%d{dd.MM.yyyyHH:mm:ss.SSS}*%level*[%thread]%logger%message%n 最佳答案 我设法让Sling使用我的配置文件的唯一方法是将配置文件的位置作为VM参数传递,如下所示:-Dorg.apache