2010-09-07 85 views
1

我的故事如下。 我有一个与休眠连接到嵌入式数据库(德比)的Java应用程序。 有趣的是,我的hibernate应用程序在开始时打印了uname,因为我使用的是slf4j-simple,所以我将我的应用程序设置为使用log4j。休眠log4j.properties打印数据库uname&pass

休眠分贝UNAME &通在代码中设置,使用属性对象。 我尝试在log4j属性配置器上使用相同的技巧,但log4j.properties文件覆盖了我的属性对象。 但是,log4j.properties文件很容易更改,主要是quiestion。 可以将log4j设置为打印我的db uname & pass,或者在我的Hibernate配置中使用的任何敏感数据在App中?

+0

这种行为你_want_,或_want to prevent_? – Tim 2010-09-07 08:04:49

+0

我现在看到,设置我的记录器上的Level设置文件中的输出。所以问题是我可以在log4j文件中设置记录器? – Darwly 2010-09-07 08:04:56

+0

我想防止打印uname&pass。 – Darwly 2010-09-07 08:09:03

回答

0

如果我理解正确,你......你休眠的应用程序发出的呼叫(直接或间接)的记录器功能之一(调试,警告,错误,信息等),将通过用户名/密码为参数...

然后,是的,绝对的log4j可以配置打印UNAME &通。而且,是的,您可以“在log4j中设置记录器”。

而且,这样做要么会相当容易。您可以修改根记录器以在整个应用程序(包括库)中显示所有记录调用。


底线,如果使用uname /通在代码中设置,以纯文本,得到它是平凡简单的(log4j的是不是唯一的方法),即使没有访问源* .java文件。