无法使用log4j打印到控制台

时间:2012-02-17 16:31:48

标签: java oracle log4j

我的问题是我想知道在oracle数据源池(oracle.jdbc.pool.OracleDataSource)中向oracledb打开了多少连接,我想使用log4j将此信息打印到控制台。 我在spring配置文件中定义了我的池:

<bean id="dataSource" class="oracle.jdbc.pool.OracleDataSource" >
    <property name="dataSourceName" value="ds" />   
    <property name="URL" value="jdbc:oracle:thin:@something" />
    <property name="user" value="user" />
    <property name="password" value="password" />
</bean>

我会以某种方式将我的ojdbc6或ojdbc14 jar中的日志信息以log4j传递给控制台,正如我所说,但我的log4j没有打印任何内容。 在我的log4j.properties中,我有:

log4j.logger.oracle.jdbc.pool=ALL, jdbc
log4j.appender.jdbc=org.apache.log4j.ConsoleAppender
log4j.appender.jdbc.layout=org.apache.log4j.PatternLayout
log4j.appender.jdbc.layout.ConversionPattern=JDBC    | %5p | %d{HH:mm:ss,SSS} > %m - [%l]%n 

我不知道ojdbc包中是否有这些信息,好的,如果你知道我怎么能欢迎你,但我的问题是我看不到任何日志。也许根本没有任何日志......

感谢您的关注。

3 个答案:

答案 0 :(得分:0)

无法保证oracle使用log4j,您应该尝试配置java util日志设置。这个link似乎暗示oracle使用java util logging。或者,您可以在委托回oracle连接池之前/之后构建代理类或扩展此类并编写自己的log4j消息。

答案 1 :(得分:0)

选中此page以初始化配置程序。如果你没有正确初始化它log4j不会记录消息。最重要的是尝试在使用oracle对象的业务逻辑中使用log.debug,log.warn。 Log4j只是一个可以通过java使用的日志库。不确定oracle是否通过它转储它。

如果您认为其工作不正常,还有其他跟踪和日志记录工具。我的第一个指针是在您的应用程序中尝试一个简单的应用程序,以查看您在使用我之前提到的配置程序后运行它们时控制台是否获取了log4j消息。

答案 2 :(得分:0)

我找到了答案,只有一些ojdbc包能够打印日志。 我有ojdbc6和ojdbc14罐子,他们没有这种能力。

来自link

启用完整日志记录后,几乎可以保证所有敏感信息都会在日志文件中公开。这是日志记录功能所固有的。但是,只有某些JDBC JAR文件包含JDBC日志记录功能。以下JAR文件包括完整日志记录,不应在敏感环境中使用:

ojdbc5_g.jar

ojdbc5dms_g.jar

ojdbc6_g.jar

ojdbc6dms_g.jar

以下JAR文件包含有限的日志记录功能:

ojdbc5dms.jar

ojdbc6dms.jar

我做完了:P