草庐IT

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

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

java - 日志文件中的奇怪消息 @^@^@^@^@^@^@^@^@^@^@^@^@^@^@^

我有一个基于ApacheMina的Java编写的用于网络操作的应用程序服务器。最近我在我的日志文件中遇到了一个奇怪的行为。我注意到日志文件充满了@^@^@^@^@^@^@^@^@^@^@^@^....字符。我的意思是那些意想不到的字符数量巨大,因此日志文件在几个小时内就达到了数百GB!我对这个问题一无所知,几乎不可能用谷歌搜索它。可能是什么原因?这些字符集是否有人熟悉?如果需要,我可以提供有关该应用程序的更多详细信息。提前致谢。 最佳答案 这些字符是nullcharacters(NUL,ASCII值0)在caretnotation.

java - 在运行时设置 java.util.logging.config.file

我试图在运行时设置javautil日志记录配置文件,以避免必须将其设置为VM参数。但这行不通。每当我尝试重新读取配置时,日志记录都被禁用。请看下面的代码片段:packagetest;importjava.io.FileInputStream;importjava.util.logging.Level;importjava.util.logging.LogManager;importjava.util.logging.Logger;publicclassA{privatestaticfinalLoggerLOGGER=Logger.getLogger(A.class.getName())

java - 如何在运行时更改特定用户/线程的日志级别

我将slf4j与log4j2.0或logback一起用作实现。例如,我的servlet有一个错误级别的记录器,我的服务器生成了100个servlet线程。我将在运行时获得特殊用户列表。当我检测到一些特殊用户连接时。我想将这些特殊用户/线程的日志级别更改为DEBUG,而其他线程的日志级别不受影响(仍然是ERROR)。我知道logback中的TurboFilter和log4j2.0中的DynamicThresholdFilter,但是由于我只会在运行时获取特殊用户列表,所以我无法使用它们。这是我的申请:packagecom.example.logging;importjava.util.H

Java - 我应该为日志消息使用常量吗?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。只是一个关于表单的快速问题。我正在记录各种错误消息,想知道我是否应该在日志调用中为消息创建一个新字符串,或者在我用来存储其他字符串常量的接口(interface)中创建一个常量字符串,然后只引用它。我正在使用代码分析器代码,它暗示后者说创建一个字符串常量并引用它是更好的做法,即使它只使用一次字符串。我只是想知道是否确实如此?提前致谢

java - 如何将 jaxb 打印到 java 对象到记录器中

您好,通过以下链接,我可以将JAXB转换为java对象,并使用以下语句在控制台中打印它。http://www.mkyong.com/java/jaxb-hello-world-example/jaxbMarshaller.marshal(customer,System.out);但我想在记录器中打印输出。例如)log.info(客户)或log.debug(客户)我正在使用Apachelog4j。有人知道吗?? 最佳答案 下面是一种可能的方式..Customercustomer=newCustomer();//setcustomera

java - log4j2 日志记录发生在错误的路径中

我在weblogic中部署了一个耳朵,log4j2.xmllogPath设置为some_path_1和一个记录器定义为在这个ear/lib中有一个包含log4j2.xml的jar,logPath属性定义为some_path_2和一个包装结构非常相似的记录器两个log4j2.xml也配置为具有不同的日志文件名。但是两者的日志都在路径some_path_2中,并且文件名在该jar中定义如何确保两个日志记录输出按照定义分别发生?我的耳朵结构是这样的ear|--lib|--|--abc.jar|--|--|--log4j2.xml//theonethatsgettingloaded|--xyz

java - 使用的记录器数量

我正在使用log4j开发一个非常大的java应用程序,我想知道是否有一种方法可以在运行时提取Activity记录器的数量?或者应用程序中现有的记录器是什么?我的最终目标是获取所有记录器的列表并在运行时更改它们的级别。谢谢。 最佳答案 你可以尝试这样的事情:EnumerationallLoggers=Logger.getRootLogger().getLoggerRepository().getCurrentLoggers();然后遍历所有记录器。 关于java-使用的记录器数量,我们在S

java - 如何在 spring boot 应用程序的 .log 文件中写入 stdout 语句

我正在尝试在日志文件中写入System.out.print语句我使用以下application.properties文件logging.level.org.springframework.web=INFOlogging.level.org.hibernate=ERRORlogging.level.com.cirq.configurator=INFOlogging.path=${mypath}logging.file=filename.log但是使用上面的代码,我无法在日志文件中写入System.out.print语句首先,我创建我的spring-boot项目的.jar文件并在under

Java.util.logger 每天新文件

我正在使用java.util.logging框架在我的JSF应用程序中实现日志记录。我已经成功地实现了这一点,但是我有一个新的要求,即每天轮换日志并创建一个新的日志文件。我不知道如何实现。任何关于实现的提示将不胜感激。谢谢。这是我配置记录器的方式:myLogger=Logger.getLogger("info.aio");fileHandler=newFileHandler("aioinfo.log",1048576,100,true);fileHandler.setFormatter(newSimpleFormatter());myLogger.addHandler(fileHand