問題タブ [adonetappender]

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.

0 投票する
0 に答える
800 参照

c# - カスタム データを含む log4net adonetappender、DataTime データが含まれているとログを書き込めません

カスタムデータを Db に記録する必要があり、このチュートリアルに従いました: http://stephenjamescode.blogspot.it/2014/01/logging-custom-objects-and-fields-with.html

ReflectionPatternConverter 必要なカスタム データをログに記録できるようにするを実装しました。これはコードです:

ReflectionPatternConverter

ReflectionPatternLayoutを登録する以外は何もしないカスタムを使用しReflectionPatternConverterます。

反射パターンレイアウト

このカスタム データ クラスをログに記録したい:

カスタムログデータ

だから私はこの設定ファイル(スニペット)でlog4netを設定しました:

ログエントリを書き込もうとすると、次の例外が発生します (log4net のデバッグモードを true に設定):

log4net:エラー [AdoNetAppender] エラー コード: GenericFailure。データベースへの書き込み中の例外 log4net:ERROR [AdoNetAppender] ErrorCode: GenericFailure. データベースへの書き込み中の例外 System.FormatException: Can't convert parameter value from String do DateTime. ---> System.FormatException: 文字列は有効な日時として認識されませんでした....

(例外メッセージは異なる可能性があります。イタリア語から翻訳しました)。
面白いことに、現在のスレッド ロケールをCultureInfo.InvariantCulture

したがって、これは日時形式の愚かなロケールの問題であると強く思います。
クライアントのロケール設定からロギングを分離するにはどうすればよいですか?

0 投票する
2 に答える
1630 参照

c# - log4net を使用したカスタム AdoNetAppender で異なる ConnectionString を使用する

実行時に定義する ConnectionString を使用したいと考えています。多くの例を見つけましたが、機能させることはできません。

カスタム AdoNetAppender を作成しました。

私は次の構成を持っています:

私のロガーは、構成ファイルで次のように定義されています。

そして最後に、私のコードでロガーを取得するには、次のことを行っています。

接続文字列を構成に「ハードコード」しようとすると、機能します。しかし、いくつかの変数に応じて別の ConnectionString が必要なため、これを行うことはできません。カスタムアペンダーに入れたプロパティ ConnectionString は決して呼び出されません。私が何かを見逃している場所はありますか?

0 投票する
1 に答える
116 参照

c# - AdoNetAppender 別のファイルから接続文字列の値を取得する

現在、log4net を使用して info\error メッセージをファイルに記録する複数の Web サービスがあります。ロギングをDBで行うようになりました。AdoNetAppender について読んだことがありますが、コマンド テキストや接続文字列などのいくつかのパラメーターを指定すると、簡単に実行できることがわかります。

しかし - 私の接続文字列はlog4netと同じweb.configにはありませんが、ディスクのconfig.iniから取得されます。そこから接続文字列の値を抽出するように AdoNetAppender を構成できますか?

前もって感謝します

0 投票する
1 に答える
211 参照

visual-studio - ローカルでの実行時にインスタンス化されたアペンダーはありません

log4net を使用する Web アプリケーションがあります。私の Web アプリケーションは Azure にデプロイされ、そこで完全に動作します。ただし、VS2013 (アップデート 4) を介してローカルで実行すると、log4net はAdoNetAppender.

スローされたすべての例外を中断して例外をチェックしましたが、何もスローされず、内部 log4net デバッグをアクティブにしましたが、デバッグ出力に例外は何も表示されませんでした。

また、何も追加<trust level="Full"/>しませんでしたweb.config...

これも Azure では機能しますが、ローカルでは機能しません。何か案は?ありがとう!

EDITこれが私のweb.configものです(関連する行のみ)

更新 2

適切に構成されていlog4netますが、呼び出すLogManager.GetLogger("...")とアペンダーのないロガーが返されることがわかりました。AdoNetAppenderただし、階層をさらに調べると、そこに自分が表示され、XmlConfigurator.Configure()実行すると次のように出力されますlog4net: Adding appender named [ADONetAppender] to logger [root]....

したがって、問題は、返されたオブジェクトにLogManager.GetLogger(...)アペンダーが含まれていないことに要約されます (これはローカルでのみ発生し、本番環境では発生しません)。

解決した

以下の受け入れられた回答を参照してください。私が本当に欠けていたのはXmlConfigurator.Configure()、私のApplication_Startメソッドでの呼び出しだけだったことがわかりました。私が提供した他のすべての「証拠」は正常な動作であり、ローカルでログ メッセージが表示されなかった理由は、ローカル データベースと本番データベースの間のログ テーブル スキーマの意図しないわずかな違いでした。

0 投票する
1 に答える
6194 参照

c# - Log4Net エラー: 「構成セクション log4net が見つかりませんでした」 AdoNetAppender

テスト専用の新しいプロジェクトを作成しました。Log4NetDBに書き込むために使用しようとしています。しかし、このエラーが発生しています。構成に何かが欠けていると思います。

AssemblyInfo.cs

Logging.config

Form1.cs

0 投票する
2 に答える
1538 参照

c# - log4net AdoNetAppender - SqlParameterCollection にパラメーターが含まれていません

私のプロジェクトの1つで、次のエラーが発生します。

アペンダー構成は次のとおりです(他のプロジェクトでは完全に機能します):

誰かがこの問題を抱えていたら、助けてくれて本当にありがとう