有 Java 编程相关的问题?

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

如何记录来自java的消息。util。登录中。记录器日志记录,然后将其打印到文本文件?

“记录器”。信息(信息);'代码中的第行创建此输出:

Dec 17, 2013 12:54:50 PM greenhouse.GreenhouseControls$ControllerException

我想使用PrintWriter将该行打印到文本文件中。这就是我到目前为止所做的:

public ControllerException(String message, int errorcode) {
          super(message);
          this.errorcode=errorcode;   

          Logger logger = Logger.getLogger(ControllerException.class.getName());
          logger.info(message);

          String fileName = "error.log"; 

          try {
            PrintWriter outputStream = new PrintWriter(fileName);
            outputStream.println("Time: " + ????);         // Not sure what to put here..
            outputStream.println("Reason: " + message);
            outputStream.close();
           } catch (FileNotFoundException e) {
            e.printStackTrace();
           }      
       }

为了达到这一目的,我可以在打印行语句中包含哪些内容来代替问号


共 (1) 个答案

  1. # 1 楼答案

    我会这样做:

    public ControllerException(final String message, int errorcode) {
        super(message);
        this.errorcode=errorcode;
    
        Logger logger = Logger.getLogger(ControllerException.class.getName());
    
        logger.setFilter(new Filter() {
            @Override
            public boolean isLoggable(LogRecord record) {
                SimpleDateFormat sdf = new SimpleDateFormat("MMM dd',' yyyy HH:mm:ss a");
                String fileName = "error.log";
    
                try {
                    PrintWriter outputStream = new PrintWriter(fileName);
                    outputStream.println("Time: " + sdf.format(new Date(record.getMillis()))); 
                    outputStream.println("Reason: " + message);
                    outputStream.close();
                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                }
    
                return true;
            }
        });
    
        logger.info(message);
    }
    

    这样就可以得到日志记录的确切日期