草庐IT

java - Log4j2 保存文件(使用 RollingFile appender)

我正在尝试使用log4j2为我正在开发的系统创建日志文件,我已经按照他们site上的说明进行操作当我运行它时没有发生错误,但日志没有保存在我设置的位置(例如“D:\logs\app.log”)。这是我的log4j.xml%d%p%C{1.}[%t]%m%n我试过:删除app.log以查看我的配置(D:\logs\app.log)是否有效。当我运行应用程序时,它会创建app.log,所以我认为这意味着它看到了配置,唯一的问题是它没有保存我在java应用程序中所做的log.info将根级别更改为“TRACE”,并打印log.info。[编辑:]我的类路径中也有这些库log4j-api-2.

java - 在 log4j2 中按类名过滤

我正在使用log4j2,但我不知道如何按类名进行过滤。我试过使用RegexFilter但它只过滤文本消息。在旧的log4j中,标签'filter'就足够了有人知道现在该怎么做吗?提前致谢!更新:好的,我做到了!我需要定义一个记录器并在属性“名称”中设置类名: 最佳答案 如果您遵循记录器的命名约定,这在Log4j中会自动工作。在您的代码中,使用类名声明记录器:Loggerlogger=LogManager.getLogger(MyClass.class);记录器自动分配名称fully.qualified.class.name.of.M

java - 使用 Log4J 或 LogBack 的控制台上的进度条

我有一个使用Log4J打印其输出的控制台应用程序。这很有用,因为我可以轻松地实现一个开关以选择性地显示调试消息,即使它们在默认情况下是隐藏的。此应用程序有一些长时间运行的操作,进度条将适合这些操作。使用Log4J或LogBack实现此功能的最佳方法是什么? 最佳答案 要向控制台写入进度条或任何类型的更新文本,只需以\r(回车)而不是\n(换行)结束输出)以便下一行将其覆盖。这question进入更多细节。F-ANSI库使您能够轻松生成美观的控制台输出,包括覆盖前一行。但如果您打算使用日志记录框架,这不仅不可能,而且也不是您想要的。正

Java教科书: "the size of an array must be known at compile time"

我刚刚浏览了我的一本旧教科书,发现了这段在Java中定义数组的文章:Aone-dimensionalarrayisastructuredcompositedatatypemadeupofafinite,fixedsizecollectionoforderedhomogeneouselementstowhichthereisdirectaccess.Finiteindicatesthatthereisalastelement.Fixedsizemeansthatthesizeofthearraymustbeknownatcompiletime,butitdoesn’tmeanthatal

java - 如何绑定(bind)SLF4J和Log4J?

我正在尝试使用slf4j+log4j设置一个项目,但该死的东西就是不起作用......我不断收到异常:FailedtoinstantiateSLF4JLoggerFactoryReportedexception:java.lang.NoClassDefFoundError:org/apache/log4j/Levelatorg.slf4j.LoggerFactory.bind(LoggerFactory.java:129)atorg.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:108)atorg.slf4j.

java - 最佳实践 : instance variables filling over time

我是面向对象编程(在java中)概念的新手,我经常遇到以下设计问题:我经常创建带有在初始化时未知的实例变量的类。这些变量会随着时间的推移而填充。这不是一个真正的问题,因为这些变量在被填充之前都是空的,因此我的问题更多是关于这种情况下的最佳实践。我举个例子。我有一个类Car。每辆Car都有一个color、vMax、weight、horsepower等。当初始化Car时,只有它的color、weight和horsepower是已知的。-->汽车(颜色、重量、马力)现在可以计算vMax(比方说:weight/horsepower)。令我困惑的是,初始化后Car是“不完整的”,这意味着vMax

java - 使用日期和时间戳为每次运行创建 log4j 日志文件

所有,似乎这个问题已发布多次,但我仍然没有找到适合我的问题的解决方案。我提到了this和this,但它不起作用。根据下面的属性文件,每次都会创建一个包含日期的新文件但是我想创建一个具有以下格式的日志文件并且每次执行我的应用程序时都需要生成,logFileName_MM_DD_YY-HH_MM_SS.log(或)logFileName.log_YYYY_MM_DD_HH_MM_SS#Rootloggeroptionlog4j.rootLogger=INFO,file,stdout#Redirectlogmessagestoconsolelog4j.appender.stdout=org.

java - 如何防止 Joda Time 在巴西 DST 过渡期间抛出异常

今天,我们的巴西用户正在为我们生成大量崩溃报告。我已经追踪到这段代码,它抛出了一个Joda异常:importorg.joda.time.DateTime;importorg.joda.time.DateTimeUtils;importorg.joda.time.DateTimeZone;importorg.joda.time.LocalTime;publicclassScratchSpace{publicstaticvoidmain(String[]args){//forceJodatoactlikeweareinSaoPaoloon2015-10-18DateTimeUtils.se

Java8 java.time : how to change the day of the week and the start time of the day?

假设我希望我的一周从星期二开始,这一天应该从早上5:30开始。这意味着,像这样的代码应该可以工作://LocalDateTimescreatedwiththe"standard"ISOtimeLocalDateTimetuesday_4_30=LocalDateTime.now().with(TemporalAdjusters.next(DayOfWeek.TUESDAY)).withHour(4).withMinute(30);LocalDateTimetuesday_6_30=tuesday_4_30.withHour(6).withMinute(30);LocalDateTime

java - 如何通过 time4j 将 24 小时制时间转换为 AM/PM 并将纳秒转换为秒?

我面临的问题是我需要将时间从24格式转换为AM/PM格式(反之亦然),通过time4j库删除冗余值,例如纳秒和秒。我正在使用time4j库,因为Java无法处理Windows时区,我必须通过time4j转换它们从24小时格式转换为AM/PM将取决于用户本地化。我想把它(本地化)作为一个论点来传递。本地化看起来像“en-US”字符串。例如:如果用户本地化为“en-US”,则将24小时格式转换为AM/PM。否则保持当前值。或者当我已经定义了用户的本地化时,以我需要的格式获取时间可能更好?任何想法如何做到这一点?请帮助)我必须花很多时间阅读time4jdoc但我的心被吹走了全面了解我正在做的