Java如何实现写入文件的日志类

时间:2017-03-22 09:24:41

标签: java eclipse logging

我想在我的网络应用中用system.out.println替换我的所有log.println,以便不是在Eclipse控制台中插入我的所有日​​志,而是在apposite文件中插入。我想要这样,因为我已经在tomcat docker容器下部署了我的web应用程序。

经过一些研究后我发现了这个课程:

import java.io.PrintWriter;
import java.io.FileOutputStream;
import java.util.Date;


public class Log{

    private SettingsManager settings;
    private String logFile;
    private PrintWriter writer;

    static Log theInstance = null;

    /**
     * Returns the only available instance of this class, if it exists...
     * instantiates and returns it otherwise. LOg file name is retrieved 
     * through the SettingsManager
     * 
     * @return
     */
    public static Log getInstance() {
        if (Log.theInstance == null) {
            Log.theInstance = new Log();
        }
    return Log.theInstance;
    }   

    private Log() {
        this.settings = SettingsManager.getInstance();
        this.logFile = settings.getString("settings.log.filename");
        try {
            this.writer = new PrintWriter(new FileOutputStream(this.logFile, true), true);      
            writer.println("*** Kerberos Logfile ***");
            writer.println(" *** Logging started ***");     
        }catch(Exception ex) {
            ex.printStackTrace();
        }
    }

    public String getLogFile() {
        return this.logFile;
    }

    public void println(String line) {
        writer.println("[" + new Date().toString() + "]" + line);   
    }

}   

那么,我怎样才能修改这个单例类(我没有名为“SettingsManager”的类)并用system.out.println替换所有log.println?如何设置我的日志路径?

或..有人能告诉我一个简单的日志类以及如何实现它吗?

1 个答案:

答案 0 :(得分:0)

使用Log4j之类的日志库。阅读教程/文档并在代码中实现。不要复制某人的代码然后使用。

您可以查看以下教程,例如:

http://www.vogella.com/tutorials/Logging/article.html