【发布时间】:2017-03-22 09:24:40
【问题描述】:
我想在我的网络应用程序中用log.println 替换我所有的system.out.println,以便将我的所有日志插入到一个适当的文件中而不是Eclipse 控制台中。我想要那个,因为我已经在 tomcat docker 容器下部署了我的网络应用程序。
经过一番研究,我发现了这个类:
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?如何设置我的日志路径?
或者..谁能给我看一个简单的日志类以及如何实例化它?
【问题讨论】:
-
看来你一开始对很多java基础知识都不是很了解。因此,与其考虑如何编写在 tomcat 中运行的东西……不如花大量时间学习这些基础知识。然后你使用你最喜欢的搜索引擎来搜索像 singleton 这样的词。那里有 吨 的文档...
-
对不起,我表达得很糟糕。我知道这是一个单例类。我已经编辑了我的答案。