标签: java.util.logging

使用java.util.logging处理程序登录syslog的最现代方法是什么?

我特意寻找最新,最现代SysLogHandlerjava.util.logging.

我发现一些可以追溯到2001年至2003年,现在大部分都没有得到支持.

我知道这syslog是一个非常静态的服务,我想在自己写一些东西之前,如果有任何新的处理程序实现支持Java 1.5和更新的功能.

我对任何其他日志框架或包装器/代理库都不感兴趣.

不是在寻找SLF4J或任何其他替代日志框架,如本问题所示.

java logging syslog java.util.logging

16
推荐指数
1
解决办法
1万
查看次数

修改Tomcat下的java.util.logging.SimpleFormatter格式属性

我正在使用Tomcat 7.0.28,在Ubuntu上的OpenJDK 1.7下运行,我正在尝试修改java.util.logging.SimpleFormatter使用的格式化字符串.根据该类的Javadocs,我可以指定属性java.util.logging.SimpleFormatter.format来更改格式.事实上,当我在Eclipse中运行我的webapp并在我的logging.properties文件中更改此属性时,它可以工作.

但是,当我将应用程序部署到Tomcat时,此属性似乎没有任何效果.我确信我的属性文件正在被正确读取,因为我对它做的其他更改确实生效了(我正在使用文件读取属性)

LogManager.getLogManager().readConfiguration(new FileInputStream(file))
Run Code Online (Sandbox Code Playgroud)

where文件是通过我的web.xml文件中的参数配置的.我已经尝试将该文件放在WEB-INF/classes/logging.properties中,但行为没有变化.

SimpleFormatter的Javadocs指定如果属性文件和系统属性都指定格式化字符串,则系统属性优先.我已验证未设置系统属性

context.log ("Formatting system property is " + System.getProperty("java.util.logging.SimpleFormatter.format"));
Run Code Online (Sandbox Code Playgroud)

在ServletContextListener.contextInitialized方法中.

这是我的记录属性文件

handlers=java.util.logging.ConsoleHandler

#  Default logging level for root logger
.level=FINE

#  Set the level for the ConsoleHandler
java.util.logging.ConsoleHandler.level=FINE
java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter
java.util.logging.SimpleFormatter.format=[%1$tF %1$tr] %3$s %4$s:  %5$s %n
Run Code Online (Sandbox Code Playgroud)

我已经尝试了我能想到的一切,包括修改TOMCAT/conf和JRE_HOME/lib目录中的logging.properties.似乎没有任何区别.

tomcat java.util.logging

15
推荐指数
4
解决办法
3万
查看次数

SFL4J和JDK日志记录之间的不同日志记录级别

我使用JDK日志记录作为日志框架,SLF4J作为简单的外观.当我记录不同级别的日志时,我有一些疑问.

SLF4J具有以下日志级别

跟踪(最不严重)
调试
信息
警告
错误
致命(最严重)

JDK日志记录具有以下日志级别

严重(最高值)
警告
INFO
CONFIG
FINE
FINER
FINEST(最低值)

如果我想将日志级别设置为DEBUG,那么在JDK日志记录中该级别不可用.任何人都可以解释一下我们如何在这种情况下获得DEBUG级别的日志记录.我们是否需要针对这种情况进行任何其他配置?

更新

这是我的属性文件配置

handlers = com.amc.logging.handlers.DebugLogHandler

com.amc.logging.handlers.DebugLogHandler.pattern = c:/logs/debug_log.log com.amc.logging.handlers.DebugLogHandler.level = FINE com.amc.logging.handlers.DebugLogHandler.formatter = java.util.logging .SimpleFormatter com.amc.logging.handlers.DebugLogHandler.append = true

请让我知道我哪里出错了.

logging slf4j java.util.logging

14
推荐指数
1
解决办法
2万
查看次数

如何查看org.codehaus.jackson日志消息 - 使用logging.properties

我试图使用包来反馈 JSON请求体的传入PUT请求,org.codehaus.jackson我收到错误消息The request sent by the client was syntactically incorrect.如何在Pivotal TC服务器日志中获取更详细的日志/错误消息,例如catalina.log

我已将以下行添加到logging.properties:

org.codehaus.level = FINEST
Run Code Online (Sandbox Code Playgroud)

NO从信息org.codehaus虽然显示网页上的错误信息会显示在我的日志.也许codehaus不支持Java日志记录,我应该配置J4Log或类似的另一个日志记录工具?

我的Jackson版本是1.9.13,我使用的是Spring Tools Suite的 Pivotal tc服务器(3.8).

java java.util.logging jackson tcserver

14
推荐指数
1
解决办法
3358
查看次数

如何在log4j.xml中设置过滤器

HI,

在我们的Web应用程序中,它打印所有日志,如Spring和JSF jars文件.这对我们来说不是必需的.如何在log4j.xml文件中设置仅针对我们的应用程序进行过滤?

更新

以下是我们用于日志记录的配置.你能告诉我它是否正确吗?我必须在文件中添加logger元素?

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<!-- Log4j Configuration file to log the messages into different logfiles -->
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

  <appender name="DEBUG" class="org.apache.log4j.RollingFileAppender">
    <param name="File" value="D:/logs/DEBUGFILE.log"/>
     <param name="Append" value="true"/>
     <param name="MaxFileSize" value="500KB"/>
     <param name="MaxBackupIndex" value="2"/>
    <layout class="org.apache.log4j.PatternLayout">
      <param name="ConversionPattern" value="%d [%t] %p - %m%n"/>
    </layout>
    <filter class="org.apache.log4j.varia.LevelRangeFilter">
     <param name="LevelMin" value="DEBUG" />
      <param name="LevelMax" value="DEBUG" />
    </filter>
  </appender>

  <appender name="INFO" class="org.apache.log4j.RollingFileAppender">
    <param name="File" value="D:/logs/AUDIT_TRAIL.log"/>
    <param name="Append" value="true"/>
     <param name="MaxFileSize" value="500KB"/>
     <param name="MaxBackupIndex" value="2"/>
    <layout …
Run Code Online (Sandbox Code Playgroud)

logging log4j java.util.logging

13
推荐指数
1
解决办法
3万
查看次数

如何从2行java.util.logging输出中抑制日期行?

我正在使用Java默认记录器,现在它正在输出很多无用的垃圾,这里有一个例子,这行代码:

log.info("Logging pointless information...")
Run Code Online (Sandbox Code Playgroud)

将输出所有这些:

Oct 26, 2011 9:37:57 PM java.util.logging.LogManager$RootLogger log
INFO: Logging pointless information...
Run Code Online (Sandbox Code Playgroud)

除了第二行,我不需要知道任何事情.我怎样才能删除这些垃圾?我想要的只是简单的文本记录.

java logging java.util.logging

12
推荐指数
2
解决办法
7183
查看次数

Java以纯文本登录

我使用以下代码将Java Logger重定向到登录文件:

Handler handler = new FileHandler("test.log", LOG_SIZE, LOG_ROTATION_COUNT);
Logger.getLogger("").addHandler(handler);
Run Code Online (Sandbox Code Playgroud)

但它以XML格式登录.我希望完全像输出(即纯文本).我怎样才能做到这一点?

java logging java.util.logging

12
推荐指数
1
解决办法
5295
查看次数

为什么没有登录异常堆栈跟踪?

我尝试了SLF4J FAQ中的简单示例:

package com.aed.tests.logging;
import org.slf4j.LoggerFactory;

public class TestLogging
{

    public TestLogging()
    {
        // TODO Auto-generated constructor stub
    }

    /**
     * @param args
     */
    public static void main(String[] args)
    {
        String s = "Hello world";
        try
        {
            Integer i = Integer.valueOf(s);
        }
        catch(NumberFormatException e)
        {
            LoggerFactory.getLogger("simplelogger").error("Failed to format {}", s, e);
            LoggerFactory.getLogger("simplelogger").error("Without parametrized string", e);

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是输出:

15:33:51,248000000 [SEVERE]simplelogger: Failed to format Hello world 
15:33:51,275000000 [SEVERE]simplelogger: Without parametrized string 
Run Code Online (Sandbox Code Playgroud)

我使用java.util.logging作为日志记录实现,使用以下logging.properties

# Properties file which configures the …
Run Code Online (Sandbox Code Playgroud)

java logging exception slf4j java.util.logging

12
推荐指数
1
解决办法
1万
查看次数

如何在jenkins上启用调试日志记录?

我正在尝试调试ssh-slaves的行为,但来自https://wiki.jenkins-ci.org/display/JENKINS/Logging的jenkins文档极度不完整.

我添加了一个新的记录器并添加了:

  • "赫德森".所有
  • "org.jenkinsci.plugins." 所有

添加的新日志仍然没有更新.

另外,我没有找到关于如何启用所有内容,空白,启动或什么的日志记录的信息?

更新:我试图添加-Djava.util.logging.loglevel=FINE到命令行启动jenkins,但令我惊讶的是它对JENKINS_LOG没有任何影响,但它确实对您可以在GUI上检查的日志产生影响.

java java.util.logging jenkins

11
推荐指数
1
解决办法
4万
查看次数

为什么java.util.logging.Logger打印到stderr?

我有一个简单的设置来记录消息:JDK 8 Update 65Eclipse Mars

import java.util.logging.Logger;

public class Example {

    private final static Logger LOGGER = Logger.getLogger(Example.class.getName());

    public static void main(String[] args) {
        LOGGER.info("Test");
    }

}
Run Code Online (Sandbox Code Playgroud)

我希望得到一个输出stdout,就像使用一样System.out.println();.
它会打印出来stderr,这会在eclipse控制台上产生一个红色字体:

在此输入图像描述

我知道我可以通过编写自定义来改变这种行为Handler,但我想知道为什么默认输出会出现在?stderr而不是stdout

记录器应该stdout用于fine+ infostderr用于severe级别.

java eclipse logging stderr java.util.logging

11
推荐指数
2
解决办法
5167
查看次数