如何在运行时设置log4j的DB凭据

时间:2016-04-19 05:34:07

标签: java logging log4j

这是我的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异常。所有异常堆栈跟踪都在控制台上打印我不想在控制台上打印它。

1 个答案:

答案 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实例,这样您就可以在运行时设置凭据。

关于捕获文件中的错误,您可以将stdoutstderr重定向到您的日志文件,请参阅log4j redirect stdout to DailyRollingFileAppender上的Dario's答案,了解有关该问题的更多详细信息。