📄 logimpl.java
字号:
package com.briup.inf.impl;
import java.io.IOException;
import java.util.Date;
import java.util.Properties;
import org.apache.log4j.ConsoleAppender;
import org.apache.log4j.FileAppender;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.SimpleLayout;
import com.briup.exception.ConfigException;
import com.briup.inf.Config;
import com.briup.inf.Log;
/**
* class LogImpl
*
* @author Jimmy Zhou
* @Date 2008-2-4 下午09:58:42
*/
public class LogImpl implements Log {
// Logger: 决定什么日志信息应该被输出、什么日志信息应该被忽略;
private Logger logger;
private static Log log;
private LogImpl(Properties pro) {
logger = Logger.getRootLogger();
// 设定输出级别,通过配置文件获得
String level = pro.getProperty("level");
logger.setLevel(Level.toLevel(level));
// Layout: 指定日志信息的输出格式
SimpleLayout sl = new SimpleLayout();
// Appender: 指定日志信息应该输出到什么地方, 这些地方可以是控制台、文件、网络设备;
FileAppender fa = null;
ConsoleAppender ca = new ConsoleAppender(sl);
String filepath;
try {
filepath = pro.getProperty("log_file_path");
fa = new FileAppender(sl, filepath);
} catch (IOException e) {
e.printStackTrace();
}
logger.addAppender(fa);
logger.addAppender(ca);
}
public static Log newInstance(Properties pro) {
if (log == null) {
log = new LogImpl(pro);
}
return log;
}
public void write(String log, int levelgrade) {
switch (levelgrade) {
case 1: {
writeDebug(log);
writeInfo(log);
writeWarn(log);
writeError(log);
writeFatal(log);
break;
}
case 2: {
writeInfo(log);
writeWarn(log);
writeError(log);
writeFatal(log);
break;
}
case 3: {
writeWarn(log);
writeError(log);
writeFatal(log);
break;
}
case 4: {
writeError(log);
writeFatal(log);
break;
}
case 5: {
writeFatal(log);
break;
}
default:
writeInfo("Sorry, Please input appreciate priority!");
}
}
public void writeDebug(String log) {
logger.debug(log);
}
public void writeError(String log) {
logger.error(log);
}
public void writeFatal(String log) {
logger.fatal(log);
}
public void writeInfo(String log) {
logger.info(log);
}
public void writeWarn(String log) {
logger.warn(log);
}
public static void main(String[] agrs) {
Properties pro = new Properties();
Date date = new Date(System.currentTimeMillis());
// pro.setProperty("level", "FATAL");
// pro.setProperty("log_file_path", "src/com/briup/log.txt");
pro.setProperty("config_file_path", "src/com/briup/config.xml");
Config config = ConfigImpl.newInstance(pro);
Log log = null;
try {
log = config.getLog();
} catch (ConfigException e) {
e.printStackTrace();
}
// Log log = new LogImpl(pro);
log.writeDebug(date + " :debug Message");
log.writeError(date + " :error Message");
log.writeFatal(date + ":" + "fatal Message");
log.writeInfo(date + " :info Message");
log.write(date + " :Message of write", 1);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -