Tag: java.util.logging

WAS日志记录 – Java Util Logging和Log4j

我正在寻求以下确认: 使用Websphere Application Server管理控制台,我们可以指定一些日志记录配置,并显示应用程序的类(如下所示)。 如果我在WAS控制台中启用日志记录,它是否只有在我的应用程序(以及其中提到的其他类)已实现JUL的情况下才能工作? 默认情况下,使用WAS控制台的日志记录在跟踪文件($ {SERVER_LOG_ROOT} /trace.log)中完成。 这可以用于控制台吗? (我想是的,只需将其更改为$ {SERVER_LOG_ROOT} /SystemOut.log) 有没有办法从WAS控制台配置Log4j属性? (我认为不,因此我们需要使用其他方法使其可以配置Log4j)。 PS:我知道JUL提供了抽象以及它自己的实现。 上面的问题被要求记住JUL的实施:)

Java Logger:无法在logger.properties文件中设置日志级别

我有一个java项目,我使用maven来构建。 我在我的项目中使用java.util.logging.Logger ,并希望使用logger.properties文件(而不是命令行)进行配置。 我创建了一个logger.properties文件,如下所示: handlers=java.util.logging.FileHandler, java.util.logging.ConsoleHandler .level=WARNING java.util.logging.SimpleFormatter.format=[%4$s] %5$s %n java.util.logging.config.file=”../../results/api.log” 以下是我遇到的问题: java.util.logging.SimpleFormatter.format正在工作 。 当我在这里更改格式时,我会在项目中立即看到更改。 所以我知道至少我正在导入文件。 .level不工作 。 我已经尝试将其更改为info , finest , warning等,但在我更改之后,即使我告诉它不显示INFO,我仍然会看到所有的INFO消息。 java.util.logging.config.file无效 。 我有点期望这个不起作用,因为它是一个相对的路径。 任何人都知道我如何解析属性文件中的相对路径名? 解 我需要将.level移动到顶部,如下所示: logger.properties .level=WARNING handlers=java.util.logging.FileHandler, java.util.logging.ConsoleHandler java.util.logging.SimpleFormatter.format=[%4$s] %5$s %n 然后,为了将结果保存到“api.log”,我在我的代码中执行了此操作: RequestHelper.java import org.apache.commons.io.FilenameUtils; public class RequestHelper { private static final Logger LOGGER = Logger.getLogger( RequestHelper.class.getName() ); protected RequestHelper() […]

Java Util Logger写同步

通常在应用程序中(例如,以Web应用程序为例),我们在启动期间创建了一个记录器实例。 它甚至可以是单身,也无所谓。 重要的是整个应用程序有1个实例。 我们使用java.util.logger 现在,您有来自两个不同用户的两个请求,这两个请求会抛出exception,我们正在记录那些写入日志文件的请求。 这些对日志文件的两个不同请求中的写入是否同步? 或者我们是否需要显式同步它们因为我发现在极少数情况下我们得到的日志在tomcat日志文件中的两个请求之间都是混合的? 我并不完全关心这里只是分离两条日志消息的因果关系。

如何为JUnit测试设置Loglevel

我在我的课程中使用java日志。 例: public class MyClass { private static Logger logger = Logger.getLogger(MyClass.class.getName()); …. } 当我为该课程编写JUnit测试时,我想将Loglevel设置为’FINE’。 我试过了: @Before public void setup() throws PluginException { Logger.getGlobal().setLevel(Level.FINE); …. } 但这没有效果。 使用Java Logging时,如何在JUnit Test中控制loglevel? 我正在使用Maven运行我的测试。

如何在项目中包含多个log4j2.xml文件?

我的项目由多个模块组成。 每个模块都可以独立运行,并具有单独的log4j2.xml 说项目X由三个模块组成: 模块A有log4j2.xml(包含Loggers和Appenders) 模块B有log4j2.xml 模块C有log4j2.xml 在集成模块时,我必须手动将Loggers和Appender从每个模块的log4j2.xml复制粘贴到项目特定的log4j2.xml文件中。 为了避免复制粘贴,我一直在寻找包含多个文件的XInclude ,但它只支持Appenders和Logger在不同的文件中。 http://logging.apache.org/log4j/2.x/manual/configuration.html#XInclude 如何XInclude多个log4j2.xml文件? 任何帮助是极大的赞赏。

在logging.properties中自定义日志格式

我在Tomcat 7中配置日志格式需要一些指导。我在日志记录配置方面比较新,所以请原谅幽默这个问题,如果它看起来有点基础…… 使用logging.properties中配置的Tomcat中的标准日志记录显示以下格式的日志: Jun 6, 2011 9:27:00 AM com.class.Control_WS callWebService INFO: Response received from Control_WS:[Y] 我想自定义这些日志以压缩到一行,并将日期格式扩展到包括毫秒。 例: [2011-05-04T11:37:00.037|INFO|javax.enterprise.system.stream.out|Response recieved from Control_WS:[Y]] 这是我可以使用JUL做的事情还是我需要切换到LOG4J? 任何可以提供的简单示例或方向都将非常受欢迎。

Java日志记录打开“太多”日志文件

这有点奇怪,但我是日志包及其属性的新手。 我通过谷歌搜索找到的所有问题都是“如何让日志记录打开多个文件?” 但我今天的问题是如何让它停止同时处理多个文件。 开始了… 首先要做的事情是:这个项目仅限于使用java.util.logging,我不能切换到log4j或任何其他第三方软件包,是的,我知道它们应该更加精彩。 🙂 所以当这个applet启动时,它会运行这段代码: import java.util.logging.Logger; import java.util.logging.LogManager; // in startup routine: LogManager.getLogManager().readConfiguration( this.getClass().getResourceAsStream(“/logging.properties”)); 从JAR中提取属性文件并应用它们,这是有效的。 readConfiguration()应该从VM启动重置所有现有设置。 项目的其余部分有像 private final static Logger LOGGER = Logger.getLogger(NameOfClass.class.getName()); 我认为这是非常标准的。 我们所有的类都在同一个包中(例如称之为TheProject),而时髦的日志名称/属性层次结构遵循相同的约定,因为这就是java.util.logging喜欢滚动的方式。 logging.properties文件作为Java 6 SE JRE附带的副本的一个副本开始,然后进行了修改。 现在它看起来像这样: handlers=java.util.logging.FileHandler,java.util.logging.ConsoleHandler # Default global logging level. .level=INFO # Loggers # —————————————— # Loggers are usually attached to packages. # Here, the […]

如何在Web应用程序中使用java.util.logger?

我正在尝试在Web应用程序中使用记录器。 我已经添加了FileHandler来将日志写入文件。 现在,我需要在项目中的其他类/ servlet中使用相同的处理程序,以便将来自所有类的日志写入同一文本文件。 我怎样才能做到这一点? /*** * Initialize a logger */ public static Logger logger; static { try { FileHandler fh = new FileHandler(“log.txt”, true); fh.setFormatter(new SimpleFormatter()); logger = Logger.getLogger(MyClass.class.getName()); logger.addHandler(fh); } catch (IOException e) { e.printStackTrace(); } } 我是否需要初始化记录器并在每个类中添加处理程序,如上面的代码? 还有其他技巧吗?

使用多个参数进行记录

我目前正在开发一个程序,其中,我必须将所有输出写入日志文件。 我需要编写一个log方法,它应该给出一个带有级别,消息,对象值,另一个消息,整数值,另一个消息和另一个整数值的输出,其顺序与我指定的顺序相同。 我似乎无法找到执行此操作的日志方法。 我正在使用Java.util.logging 。 这可能吗?

管理分布在多台计算机上的大量日志文件

我们已经开始使用第三方平台(GigaSpaces)来帮助我们进行分布式计算。 我们现在要解决的主要问题之一是如何在此分布式环境中管理我们的日志文件。 我们目前有以下设置。 我们的平台分布在8台机器上。 在每台机器上,我们有12-15个进程,使用java.util.logging记录分离日志文件。 在这个平台上,我们有自己的应用程序,使用log4j和日志来分隔文件。 我们还将stdout重定向到一个单独的文件以捕获线程转储等。 这导致大约200个不同的日志文件。 截至目前,我们没有工具来协助管理这些文件。 在下列情况下,这会让我们头疼。 我们事先没有知道在哪个过程中发生问题的故障排除。 在这种情况下,我们当前使用ssh登录每台机器并开始使用grep 。 通过定期检查日志以寻找任何不寻常的东西,试图主动。 在这种情况下,我们当前还登录到所有计算机并使用less和tail查看不同的日志。 设置警报。 我们希望在超过阈值的事件上设置警报。 这看起来很痛苦,需要检查200个日志文件。 今天我们每秒只有大约5个日志事件,但随着我们将越来越多的代码迁移到新平台,这将会增加。 我想问社群以下问题。 你是如何通过分布在通过不同框架记录的几台机器上的许多日志文件来处理类似情况的? 你为什么选择那个特定的解决方案? 您的解决方案是如何运作的? 你觉得什么好,你发现什么不好? 非常感谢。 更新 我们最终评估了Splunk的试用版。 我们对它的工作方式非常满意,并决定购买它。 易于设置,快速搜索和技术倾向的大量function。 我可以推荐任何类似情况的人来检查一下。