問題タブ [log4jdbc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
log4j - Weblogic、log4j および log4jdbc、ファイルにログインするがコンソールにはログインしない
Weblogic では、log4jdbc を使用して、(org.jdbcdslog.StatementLogger を使用して) クエリを特定のファイルにのみ記録する必要がありますが、コンソールには記録しません。
このパラメータでWeblogicを起動しようとしました
-Dlog4j.configuration=file:%LOG4JDBC_HOME%\log4j.xml
これは log4.xml ファイルの内容です
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="fileAppender" class="org.apache.log4j.RollingFileAppender">
<param name="Threshold" value="DEBUG" />
<param name="File" value="./logs/aladin.log" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{dd-MM-yyyy HH:mm:ss} %-5p %-30.30c %m%n" />
</layout>
</appender>
<category name="org.jdbcdslog.StatementLogger">
<priority value="INFO" />
<appender-ref ref="fileAppender" />
</category>
<category name="org.jdbcdslog.ResultSetLogger">
<priority value="FATAL" />
<appender-ref ref="fileAppender" />
</category>
<root>
<level value="DEBUG" />
<appender-ref ref="fileAppender" />
</root>
問題は、コンソールに org.jdbcdslog.StatementLogger と org.jdbcdslog.ResultSetLogger のいずれかが INFO レベルでログに記録されていることです。aladin.log (ログインしたい唯一のファイル) に org. .jdbcdslog.StatementLogger および org.jdbcdslog.ResultSetLogger クラス。
これら 2 つのクラスをコンソールではなく aladin.log にのみ記録する方法はありますか?
java - log4jdbc 強制的に ConnectionSpy ドライバーを返す
何らかの理由で私が使用するとき:
私は異なる接続を取り戻す傾向があります。この場合、次のものが混在しています。
connection = (org.apache.derby.impl.jdbc.EmbedConnection) org.apache.derby.impl.jdbc.EmbedConnection@2001280736 (XID = 598), (SESSIONID = 1), (DATABASE = /home/user/mydb), (DRDAID = null)
- 私が欲しくないもの
と:
connection = (net.sf.log4jdbc.ConnectionSpy) net.sf.log4jdbc.ConnectionSpy@32b260fa
- 私が欲しいもの
より具体的には、public static void main
メソッドを使用して実行すると動作し、元に戻ります#2
が、Web アプリケーションの起動サイクルを実行した後に同じコードを実行すると、#1
.
log4jdbc
常に返すように強制する方法はありnet.sf.log4jdbc.ConnectionSpy
ますか?
java - 共有ライブラリ jar からの ClassNotFound
JDBCAppender を使用して、log4j2.xml でレコードをデータベースに記録するために使用されるアプリケーションを開発しました。私はここで次の指示に従いました:
- http://self-learning-java-tutorial.blogspot.in/2015/10/log4j2-jdbcappender-write-log-messages.html
java.sql.Connection をインポートします。
私のlog4j2.xmlスニペットは次のとおりです:-
これですべて正常に動作し、DB でログを確認できます。
しかし、このプロジェクトを共通の共有ライブラリ jar にして他のアプリケーションで依存関係として使用するために、このプロジェクトを jar ファイルとしてエクスポートすると、ClassNotFoundException が発生します。
したがって、この共有jarファイルを依存関係として持つアプリケーションを起動するたびに、次のようになります:-
この ConnectionFactory Java クラスが共有 jar のクラスパスに入らない理由はわかりませんが、上記のアプリケーションとして実行すると正常に動作します。
jar のクラスパスに ConnectionFactory Java クラスを含める方法を提案してください。では、log4j2.xml を変更する必要がありますか?