这是我的log4j属性文件。我正在将日志写入db。我想在运行时设置数据库凭据
/dev/sdb1 733G 291G 405G 42% /data1
/dev/sdc1 733G 244G 453G 35% /data2
/dev/sdd1 733G 116M 696G 1% /data3
当log4j连接到db或写入表时,我如何捕获sql异常。所有异常堆栈跟踪都在控制台上打印我不想在控制台上打印它。
答案 0 :(得分:4)
您可以通过以下Java代码初始化日志记录框架:
public class CoreLogger {
public static Logger getLogger(final Class moduleName) {
Logger logger = Logger.getLogger(moduleName);
Properties prop = new Properties();
try {
prop.load(new FileReader("log4j.properties"));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
prop.put("log4j.appender.DB.user", "root");
prop.put("log4j.appender.DB.password", "root");
PropertyConfigurator.configure(prop);
return logger;
}
}
并使用
static Logger log = CoreLogger.getLogger(Demo.class);
在您的类中获取logger实例,这样您就可以在运行时设置凭据。
关于捕获文件中的错误,您可以将stdout
和stderr
重定向到您的日志文件,请参阅log4j redirect stdout to DailyRollingFileAppender上的Dario's
答案,了解有关该问题的更多详细信息。