繁体   English   中英

无法使用log4j打印到控制台

[英]Can't print to console with log4j

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

<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>

如我所说,我会以某种方式通过log4j将ojdbc6或ojdbc14 jar中的日志信息传递到控制台,但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捆绑包中是否包含这些信息,好的,如果您知道我该如何欢迎您,但是我的问题是我看不到任何日志。 也许根本没有任何日志...

感谢您的关注。

无法保证oracle使用log4j,则应尝试配置java util日志记录设置。 链接似乎表明oracle使用Java util日志记录。 另外,您可以建立一个代理类或扩展该类,并在委派回oracle连接池之前/之后编写自己的log4j消息。

检查此页面以初始化配置器。 如果未正确初始化,则log4j不会记录消息。 最重要的是,在使用oracle对象的业务逻辑中尝试使用log.debug,log.warn。 Log4j只是一个日志库,您可以通过java使用它。 不知道oracle是否通过它转储它。

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

我找到了答案,只有一些ojdbc捆绑软件能够打印日志。 我有ojdbc6和ojdbc14罐子,但它们没有此功能。

从这个链接

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

ojdbc5_g.jar

ojdbc5dms_g.jar

ojdbc6_g.jar

ojdbc6dms_g.jar

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

ojdbc5dms.jar

ojdbc6dms.jar

我完成了:P

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM