【发布时间】:2023-03-16 02:53:01
【问题描述】:
我正在开发一个框架,我希望 jar 尽可能轻巧且独立。
于是我写了一个日志类:
import java.util.Date;
import java.util.Properties;
public class Logger {
private static final Logger me = new Logger();
private static boolean info = false;
private static boolean debug = false;
private static boolean error = false;
private static String className = null;
public static Logger getInstance(Class<?> clazz) {
className = clazz.getCanonicalName();
try {
Properties props = new CustProps().load(clazz);
if(props.get(CustProps.NAME_LOG_MODE) != null) {
String devMode = props.getProperty(CustProps.NAME_LOG_MODE)
.toLowerCase();
if("info".equals(devMode)) {
info = true;
debug = true;
} else if("debug".equals(devMode)) {
debug = true;
}
}
} catch (Exception e) {
// debug is error by default
}
error = true;
return me;
}
public void logError(Object msg) {
if(isError()) {
System.out.println(new Date().toString()
+ " ERROR ["+Logger.className+"] - " + msg);
}
}
public void logDebug(Object msg) {
if(isDebug()) {
System.out.println(new Date().toString()
+ " DEBUG ["+Logger.className+"] - " + msg);
}
}
public void logInfo(Object msg) {
if(isInfo()) {
System.out.println(new Date().toString()
+ " INFO ["+Logger.className+"] - " + msg);
}
}
public boolean isInfo() { return Logger.info; }
public boolean isDebug() { return Logger.debug; }
public boolean isError() { return Logger.error; }
}
- 什么是使这种日志记录更好的最佳实践?
- 自己制作记录器值得吗?
- 使用这个记录器会让我的框架比选择现有的东西(比如
log4j)更糟糕吗?
【问题讨论】: