[英]printwriter problems with my logger
我正在创建一个logger类,并且将代码从println语句切换为使用printwriter,但是,出现了问题,我不知道该怎么办。 有人可以帮忙吗? 我知道问题出在Log方法中,但是我不知道该怎么办才能解决。
package com.company;
import java.io.PrintWriter;
enum MessageLevel {FatalError, LesserError, Warning, Info}
public class Logger
{
private static PrintWriter writer;
public boolean Initialize (String logfilename)
{
try
{
writer = new PrintWriter("logfile.log");
}
catch (java.io.FileNotFoundException e)
{
System.err.println("Your file " + logfilename +" is unable to open for write.\n");
}
writer.write("Hello World! \n");
writer.flush();
writer.close();
return true;
}
private static void WriteLog (String msg)
{
writer.write(msg);
}
private static String GetLevelString (MessageLevel level)
{
switch (level)
{
case FatalError:
return "Fatal Error: ";
case LesserError:
return "Lesser Error: ";
case Warning:
return "Warning: ";
case Info:
return "Info: ";
}
return "programmer error: missing level";
}
public static void Log (MessageLevel level, String msg)
{
writer.write(WriteLog(GetLevelString(level) + msg));
}
log方法给您一个错误,因为您没有给PrintWriter中的write方法提供正确的参数。 那,并且您尝试一次写两次。
writer.write(WriteLog(GetLevelString(level) + msg));
您的方法WriteLog无效,因此它不返回要写入的字符串。 而且WriteLog已经写入了您给它提供的String,因此可以使用writer.write()方法,也可以使用WriteLog方法(具有相同的作用)。
writer.write(GetLevelString(level) + msg);
要么
WriteLog(GetLevelString(level) + msg);
希望能有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.