草庐IT

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 中带日期的文件名

我正在尝试将当前日期附加到log4j日志文件。所以它会是这样的:myApp-2011-01-07.log问题是我不想使用DailyRollingFileAppender。原因是每天都会运行另一个脚本来备份日志文件夹中的所有内容。这是在Tomcat5.5下运行。这在log4j中可能吗? 最佳答案 我想你可以在代码中设置一个系统属性来包含当前日期:static{SimpleDateFormatdateFormat=newSimpleDateFormat("yyyy-MM-dd");System.setProperty("current.

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 - 修改 CompositeRollingAppender 重命名文件的方式

我在这里看到了很多关于log4j的不同附加程序的问题,但似乎没有一个能解决我遇到的问题。如果在任何地方重复这种情况,我们深表歉意。我在我们的应用程序中使用了CompositeRollingAppender,因为我们需要根据时间和大小滚动日志文件。这与宣传的完全一样,但是我们最终得到的文件如下:myapp.logmyapp.log.2010-12-11myapp.log.2010-12-11.1myapp.log.2010-12-12是否可以更改log4j如何重命名文件的格式?我敢肯定一定有一个难以捉摸的属性某处我错过了。例如在上述情况下我想要这样的东西:myapp.logmyapp-2

java - 使用 play 框架登录

我想将我的自定义日志数据保存到mysql数据库中。我已经从日志返回配置中添加了appender:com.mysql.jdbc.Driverjdbc:mysql://127.0.0.1:3308/dbpidevpasswordtrue我还将access_event和access_event_header添加到数据库。但是仍然缺少将日志保存到数据库的步骤。有帮助吗??? 最佳答案 检查你的代码有以下几点MySql依赖库Dependencies+="mysql"%"mysql-connector-java"%"5.1.16"日志表logg

java - Log4J 2 配置监控和按位比较

一位同事指出了Log4J2.3code中的以下片段:/***Calledtodetermineiftheconfigurationhaschanged.*/@OverridepublicvoidcheckConfiguration(){finallongcurrent=System.currentTimeMillis();if(((counter.incrementAndGet()&MASK)==0)&&(current>=nextCheck)){LOCK.lock();try{nextCheck=current+intervalSeconds;if(file.lastModified

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