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

标签 java jakarta-ee java.util.logging

我正在尝试在 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();
    }
}

我是否需要像上面的代码一样在每个类中初始化记录器并添加处理程序?还有其他技巧吗?

最佳答案

package package_name;

import java.io.IOException;

import java.util.Properties;

import org.apache.log4j.Logger;

import org.apache.log4j.PropertyConfigurator;


public class Log {

public  Log() 
{
        Properties props = new Properties();
    try {
        props.load(getClass().getResourceAsStream("/log4j.properties"));
    } catch (IOException e) {
        e.printStackTrace();
    }
    PropertyConfigurator.configure(props);//PropertyConfigurator.configure("log4j.properties");
}

public  Logger getLogger(Object obj) 
{
    Logger logger = Logger.getLogger(Object.class);
    return logger;
}

然后我们必须在我们的一个包中维护一个log4j.properties文件,该文件应该如下所示,

log4j.properties

log4j.rootLogger=DEBUG, R,CA

log4j.appender.R = org.apache.log4j.DailyRollingFileAppender

log4j.appender.R.File = c:\\our project name+LOGSLIVE\\logs\\project short name.log

log4j.appender.R.Append = true

log4j.appender.R.DatePattern = '_'yyyy-MM-dd'.log'

log4j.appender.R.layout = org.apache.log4j.PatternLayout

#log4j.appender.R.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} [%t] [%p] %m%n

log4j.appender.R.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss} %5p [%t] (%F:%L) -  %m%n


#Console Appender

log4j.appender.CA=org.apache.log4j.ConsoleAppender

log4j.appender.CA.layout=org.apache.log4j.PatternLayout

log4j.appender.CA.layout.ConversionPattern=%5p [%t] (%F:%L) -  %m%n

关于java - 如何在 Web 应用程序中使用 java.util.logger?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5712485/

相关文章:

eclipse - WebSocket- "Error during WebSocket handshake: Unexpected response code: 404"将外部 jar 添加到项目时

JavaEE : Login-config, 不同角色的不同形式

spring - Tomcat 7 : Setting logging level for org. Spring 框架库

java - Java中如何使用节点属性值读取、更新和删除现有的XML文件

java - md 数组的 newarray = oldarray.clone() 究竟有什么问题?

java - 在移动到下一个方法之前等待内联线程完成

java - 是否所有 JavaBean 属性都必须同时使用 getter 和 setter?

java - WAR 文件的版本号

java.util.logging - 为什么 java.util.logging.Formatter 中的 formatMessage() 方法是同步的?

java - 未找到 WildFly 9.0.1 WFLYCTL0158 处理程序 "CONSOLE"