有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

使用log4japi生成简单java类的日志

我有一个疑问,如果我写一个简单的Java类,我想看到在后面执行的日志,比如JVM在后端执行的日志。我带着log4j罐子。你能给我一些如何实现这一目标的建议吗

我希望看到在WebApp中生成的相同日志,这样我就可以在Java应用中重用它


共 (4) 个答案

  1. # 2 楼答案

    步骤1:在项目中导入log4jjar文件

    步骤2:-创建一个日志java文件

    public Log(Class className) {
            logger = Logger.getLogger(className.getClass());
            logger.getClass();
            final String LOG_PROPERTIES_FILE_NAME = "log4j.properties";
            props = loadLogFile(LOG_PROPERTIES_FILE_NAME, className);
            //props =getPropsFile(LOG_PROPERTIES_FILE_NAME, className);
            PropertyConfigurator.configure(props);
        }
    
    public static Properties loadLogFile(String propertyFile, Class className) {
            //String filePath="";
            try {
                Properties ps = null;
    
                ResourceBundle bundle = ResourceBundle
                        .getBundle("resource.DbProperties");
                String logPath = bundle.getString("logs.path");
                File filePath = new File(logPath);
                if (!filePath.exists()) {
                    filePath.mkdirs();
                }
                props.clone();
                props = getPropsFile(propertyFile, className);
                props.setProperty("info_file_path", filePath.toString());
                //  PropertyConfigurator.configure(props);
            } catch (Exception e) {
                e.printStackTrace();
            }
            return props;
        }
    
    
    public void info(String message) {
        logger.info(message);
    }
    
    public void warn(String message) {
        logger.warn(message);
    }
    
    public void error(String message) {
        logger.error(message);
    }
    
    public void fatal(String message) {
        logger.fatal(message);
    }
    
    public void printStackTrace(Throwable ex) {
        StringWriter sw = new StringWriter();
        ex.printStackTrace(new PrintWriter(sw));
        logger.error("\n" + sw.toString());
    }
    

    log4j。属性

    log4j.rootCategory=LOGFILE
    log4j.appender.LOGFILE=org.apache.log4j.FileAppender
    log4j.appender.LOGFILE.File=${info_file_path}\\info_Pension_application.log
    log4j.appender.LOGFILE.Append=true
    log4j.appender.LOGFILE.Threshold=INFO
    log4j.appender.LOGFILE.Threshold=DEBUG
    log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
    log4j.appender.LOGFILE.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
    
  2. # 3 楼答案

    如果您的“简单Java类”恰好位于Java EE容器中(如Tomcat、JBoss或WebSphere中的.jsp或servlet),那么您需要做的就是:

    1)导入组织。阿帕奇。log4j。记录器

    2)在类中声明静态实例:

     EXAMPLE:  `static Logger logger = Logger.getLogger ("MyApp");`
    

    3)使用记录器

     EXAMPLE: `logger.info ("something interesting happened");`
    

    4)如果包括log4j。java和您自己的log4j。属性,那么您就不需要做任何事情了

    以下是有关在Tomcat或应用服务器上使用log4j的更多信息:

    下面是一个非常简单的示例程序,它“执行日志记录”,从上面的教程开始。com链接:

    import org.apache.log4j.Logger;
    
    import java.io.*;
    import java.sql.SQLException;
    import java.util.*;
    
    public class log4jExample{
      /* Get actual class name to be printed on */
      static Logger log = Logger.getLogger(
                          log4jExample.class.getName());
    
      public static void main(String[] args)
                    throws IOException,SQLException{
    
         log.debug("Hello this is an debug message");
         log.info("Hello this is an info message");
      }
    }
    
  3. # 4 楼答案

    这里有一个非常简单的example,您应该能够适应您试图实现的目标