問題タブ [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.
c# - log4net複数adonetappender
同じアプリケーションで複数の ADONetAppender を使用する方法はありますか。現在、「ログ」テーブルにログを記録する ado アペンダーが 1 つあります。別の ADONetAppender を追加して、同じアプリケーション内の別のテーブルにログを記録したいと考えています。Google で検索してもあまり役に立ちませんでした。
私にお知らせください。
ありがとう
azure-table-storage - log4Net adonetappender を使用してデータを Azure テーブル ストレージに格納する方法
log4Net Adonetappender を使用して、構成を使用してアプリからの監査ログ データを sqlserver テーブルに保存しています。次に、アプリを Windows Azure に移動しています。代わりに、同じ adonetappender を使用してデータを Windows azure テーブル ストレージに保存します。 sql azure ストレージのコストが高いため、sql azure データベースの SQL azure に保存する場合、変更の必要はありません。アプリは問題なく正常に動作していますが、このデータは急速に増加し、azure テーブル ストレージが使用されるため、この監査ログ データを Windows azure テーブル ストレージに保存したいと考えています。 SQL azure と比較して、高いスケーラビリティと低コストを実現します。
c# - log4net が例外パラメーターを介してデータベース テーブルに完全なスタック トレースを追加する
log4net構成の場合..ここに私のパラメーター設定があります
ADONetAppender のストアド プロシージャは次のように設定されています。
proc 内で、@exception の入力パラメーターは次のとおりです。
ストアド プロシージャは、"Exception" 列の長さが VARCHAR 8000 のテーブル "MYTable" に書き込みます。
「MYTable」にエントリを作成できますが、このエントリには、エントリが作成された後の例外スタック トレース全体が含まれていません。スタック トレースが切り捨てられ、最大 1700 文字しか含まれていないようです。
log4netで完全なスタックトレースをデータベースに記録する最良の方法は何ですか?
私は何が欠けていますか?
助けてください。
ありがとう
c# - Log4Net がカスタム プロパティで機能しない
今回は、L4N を使用して DB にログインしようとしました。これはテーブルの構造体です。
このテーブルを埋めるために、私はこのアペンダーを使用します:
ロガーはこれです:
そして... C#からデータを渡すには、次のメソッドを使用します。
LoggingEvent がどのように機能するかはわかりませんが、それを使用して他のテーブルを埋め、完全に機能します。誰かがこの問題で私を助けることができれば、私は感謝します!!
私の下手な英語を読んでくれてありがとう!!
c# - log4net AdoNetAppenderでレコードが遅延しましたか?
私はAdoNetAppender
このような設定をしています:
また、技術的には、IIS 8 Expressで実行されているWebサイトをローカルで停止すると、レコードが表示されるため、機能します。しかし、それはまさに問題です。ウェブサイトを停止するまで、レコードは表示されません。
useTransactions
オンとオフを試してみました。
誰かがこれを手伝ってくれる?
c# - Log4NET、ADONetAppender、およびカスタム フィールド
ADONetAppender を使用して log4NET をセットアップすることができ、log.Info(message) を介してメッセージをログに記録するときに状態をキャプチャしたい場合、すべて正常に動作します。
アプリケーション全体で変化する ActionID に基づいてアプリケーションのさまざまな場所からログを記録するため、代わりに log.Info(ActionID, message) などの呼び出しを発行できるように拡張するにはどうすればよいですか。データベース?
c# - 最初にオフラインのデータベース エンジンに接続するように log4net を構成する
log4net を使用して Windows サービスをセットアップし、ファイルと SQL Server データベースにログを記録しています。
初期化中に、私はXmlConfigurator.Configure()
呼び出しを行います。サービスの早い段階で、いくつかのログを実行します。これは Windows サービスなので、SQLServer の起動とほぼ同時に起動します。私のサービスは、DB が起動する前にロギングを行っています。DB が稼働している場合、log4net は DB へのロギングを断念し、処理を続行できません。
ADONetAppender
データベースがオンラインになるとすぐに、log4net がログ データベースへの追加を開始するようにしたいと考えています。これは可能ですか?XmlConfigurator.Configure()
DB がオンラインに戻ったときに呼び出すことはできますか?
oracle - log4netがOracleデータベース接続エラーを出す
デスクトップでlog4netがOracleデータベースログに問題なくログに記録するように構成されているというこの問題が発生していますが、Webサーバーに同じものをデプロイすると、以下のエラーが発生します
サーバーは64ビットですが、デスクトップシステムは32ビットです。Entity Framwework は、Oracle を使用する両方のシステムで問題なく動作します。サーバーにODAC121010Xcopy_x64とODAC121010Xcopy_x32の両方をインストールしました。
c# - Log4net、ADONetAppender、およびストアド プロシージャ: 精度とスケールを設定しますか?
私が想定していることの組み合わせは、私のアプリケーションが期待どおりにデータベースのログ記録から停止していることです。
- テキスト コマンドが機能します。
INSERT
コマンドとコマンドの両方EXEC
が機能し、データがデータベースに入力されます - パラメータのコメントを外す
ExecutionTime
と、動作が停止します。、ある時点で機能していたことは知っていますが、パラメーターのコメントを外して追加することはおろか、アペンダーがサイレントに失敗する理由がわかりません。 - デバッグが機能しているため、エラーが見つかりました。以下にリストされ、Precision と Scale が追加されて更新されました。
内部デバッグを有効にしようとしていますが、うまくいかないようです。問題が見つかりました。構成セクションを適切な場所に移動しました (log4net の下ではありません)。- commandType を切り替えると
StoredProcedure
、テキスト バージョンでも機能しなくなります。 - まだ問題です。さまざまなことを試しているが、あまり運がなかった
SQL:
App.config
log4net.config
更新 1 Trace が機能するようになったので、DB コマンドで精度とスケールを明示的に設定する必要があると不平を言っています。私が見た例のどれもそのセットを持っていないので、それを行う方法がわからない
log4net:エラー [AdoNetAppender] エラー コード: GenericFailure。データベース コマンドを準備できませんでした [ exec InsertLog @log_date,@thread,@Context,@Level,@Logger,@Message,@MethodName,@Parameters,@Exception; ] System.InvalidOperationException: SqlCommand.Prepare メソッドには、タイプ 'Decimal' のパラメーターが明示的に設定された精度とスケールを持っている必要があります。System.Data.SqlClient.SqlParameter.Prepare (SqlCommand cmd) で System.Data.SqlClient.SqlCommand.Prepare() で log4net.Appender.AdoNetAppender.InitializeDatabaseCommand() で
更新 2 精度/スケールを追加すると、エラーが変わります。それは今不平を言います:
log4net:エラー [AdoNetAppender] エラー コード: GenericFailure。DoAppend で失敗しました System.FormatException: パラメータ値を String から Decimal に変換できませんでした。---> System.FormatException: 入力文字列が正しい形式ではありませんでした。
c# - Log4Net の AdoNetAppender でバッファを使用した遅延評価
Log4Net カスタム プロパティを使用して、環境情報をログに追加しています。プログラム クラスがコンテキスト情報 (注文 ID、ユーザー ID など) を格納するために使用するグローバル アクセス可能なプロパティとそれらの周りの遅延ラッパーを使用してユーティリティ クラスを作成したので、Log4Net ThreadContext を常に変更する必要はありません。このようなもの:
プロパティとして Log4Net に公開する値が何であれ、アプリケーションの開始時にこの遅延評価器を使用して登録するだけです。
バッファレス アペンダー(ローリング ファイルなど) で、または AdoNetAppender でバッファが 0 に設定されている場合に問題なく動作します。ただし、バッファが1より大きい場合、アプリケーションの最後にバッファがフラッシュされるまで、またはバッファ内のエントリが > bufferSize になるまで、Log4Net はプロパティの評価を延期します。
これが発生すると、情報がグローバル プロパティに存在しなくなったか、値が変更された (ループ処理命令のように) ため、ログに間違った値または null 値が記録されます。
これを修正するために私が見ることができる唯一のオプションは、バッファーの使用を停止することです。これにより、エントリがフラッシュされているときにすべての呼び出しでプロパティ値が評価されます。ThreadContext のプロパティはバッファがフラッシュされているときにのみ評価されるため、ログ呼び出しごとに異なるプロパティ値を持つことはできません。
エントリをフラッシュするときではなく、バッファリングするときに Log4Net に ThreadContext (またはその他のコンテキスト) を評価させる方法はありますか?
ありがとう