logger.java~1~
来自「《深入浅出设计模式》的完整源代码」· JAVA~1~ 代码 · 共 95 行
JAVA~1~
95 行
package singleton;
import java.text.SimpleDateFormat;
import java.util.GregorianCalendar;
import java.util.Properties;
import java.io.InputStream;
import java.io.FileOutputStream;
import java.io.PrintStream;
import java.io.IOException;
public class Logger {
private String fileName;
private Properties properties;
private Priority priority;
/**
* Private constructor构造子是私有的,因此,此类不能被继承
*/
private Logger () {
logger = this;
}
/**
* Level of logging, error or information etc
*
* @return level, int
*/
public int getRegisteredLevel () {
int i = 0;
try {
InputStream inputstream = getClass ().getResourceAsStream (
"Logger.properties");
properties.load (inputstream);
inputstream.close ();
i = Integer.parseInt (properties.getProperty (
"**logger.registeredlevel**"));
if (i < 0 || i > 3)
i = 0;
}
catch (Exception exception) {
System.out.println ("Logger: Failed in the getRegisteredLevel method");
exception.printStackTrace ();
}
return i;
}
/**
* One file will be made daily. So, putting date time in file
* name.
*
* @param gc GregorianCalendar
* @return String, name of file
*/
private String getFileName (GregorianCalendar gc) {
SimpleDateFormat dateFormat1 = new SimpleDateFormat ("dd-MMM-yyyy");
String dateString = dateFormat1.format (gc.getTime ());
String fileName = "C:\\prashant\\patterns\\log\\PatternsExceptionLog-" +
dateString + ".txt";
return fileName;
}
/**
* A mechanism to log message to the file.
*
* @param p Priority
* @param message String
*/
public void logMsg (Priority p, String message) {
try {
GregorianCalendar gc = new GregorianCalendar ();
String fileName = getFileName (gc);
FileOutputStream fos = new FileOutputStream (fileName, true);
PrintStream ps = new PrintStream (fos);
SimpleDateFormat dateFormat2 = new SimpleDateFormat (
"EEE, MMM d, yyyy 'at' hh:mm:ss a");
ps.println ("<" + dateFormat2.format (gc.getTime ()) + ">[" + message +
"]");
ps.close ();
}
catch (IOException ie) {
ie.printStackTrace ();
}
}
/**
* this method initialises the logger, creates an object
*/
public static void initialize () {
logger = new Logger ();
}
// singleton - pattern
private static Logger logger;
public static Logger getLogger () {
return logger;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?