【问题标题】:About System Loggers关于系统记录器
【发布时间】:2012-03-19 09:52:47
【问题描述】:

我想创建一个记录器来记录我发送到System.out 的所有消息。

为此我了解了 java Logger 类。

但如果我理解这个类的目的,它只允许编写代码中预先定义的日志消息。

如果我不想创建System.out。 logger 我必须创建自己的 logger 类。

String dateTime = new String (now("MM-dd-yy_HH!mm!ss"));
                BufferedReader sysLogger = new BufferedReader(new InputStreamReader(System.in));
                BufferedWriter sysWriter = new BufferedWriter(new FileWriter(new File(currentDir+"/logs/commando/CmdLog_"+dateTime+".txt")));
                String readLine = new String();
                String lastLine = new String();
                readLine = sysLogger.readLine();
                while(iSysLog == 1){ //TODO
                    if(lastLine != readLine){
                    sysWriter.write(readLine);
                    lastLine = readLine;
                    }
                    readLine = sysLogger.readLine();
                }

为什么这个代码不起作用?

还有:有没有更好的方法来实现我的目标?

【问题讨论】:

  • 我完全不知道该代码要做什么。
  • 这甚至与 Eclipse 无关(正如您的标签所暗示的那样)。您还需要修复代码格式。
  • 这段代码有很多问题。 readLine = new String(); 是不必要的。将字符串与 != 进行比较将不起作用。
  • 我怎样才能实现记录传递给 System.out 的所有消息的目标?

标签: java logging


【解决方案1】:

Logger 类用于轻松调试代码或跟踪代码执行。我们可以根据需要将记录器置于调试模式或信息模式。我们要在日志中保留哪些信息取决于我们。您可以使用 log4j 或 apache 通用日志记录。

【讨论】:

    【解决方案2】:

    找到答案:

    Java - Capturing System.err.println or Capturing a PrintStream

    仍然:如何将 System.out 设置为控制台和文件?

    【讨论】:

      猜你喜欢
      • 2023-03-14
      • 2016-04-15
      • 2021-08-21
      • 2013-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多