[解決済み] log4netをゼロからプログラムによって設定する方法(ノーコンフィグ)
質問
これはバッドアイディアだと思いますが、、、。 私は、設定ファイルなしでゼロからプログラム的に log4net を設定したいです。私は私と私のチームのために、私たちが担当している比較的小さな部門アプリケーションの束のために使用する簡単なロギングアプリケーションに取り組んでいます。私は、それらすべてが同じデータベースにログを記録することを望んでいます。ロギングアプリケーションは、AdoNetAppenderが事前に設定されたlog4netのラッパーにすぎません。
すべてのアプリケーションは ClickOnce でデプロイされ、設定ファイルをデプロイする際に小さな問題を提示します。設定ファイルがコア プロジェクトの一部であった場合、そのプロパティを設定して、アセンブリと共にデプロイすることができました。しかし、それはリンクされたアプリケーションの一部なので、メインのアプリケーションと一緒にデプロイするオプションはありません。(それが真実でない場合、誰か私に知らせてください)。
おそらくそれが悪い考えであるため、ゼロから log4net をプログラム的に構成するための利用可能なサンプル コードはあまりないようです。以下は、私がこれまでに持っているものです。
Dim apndr As New AdoNetAppender()
apndr.CommandText = "INSERT INTO LOG_ENTRY (LOG_DTM, LOG_LEVEL, LOGGER, MESSAGE, PROGRAM, USER_ID, MACHINE, EXCEPTION) VALUES (@log_date, @log_level, @logger, @message, @program, @user, @machine, @exception)"
apndr.ConnectionString = connectionString
apndr.ConnectionType = "System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
apndr.CommandType = CommandType.Text
Dim logDate As New AdoNetAppenderParameter()
logDate.ParameterName = "@log_date"
logDate.DbType = DbType.DateTime
logDate.Layout = New RawTimeStampLayout()
apndr.AddParameter(logDate)
Dim logLevel As New AdoNetAppenderParameter()
logLevel.ParameterName = "@log_level"
'And so forth...
の全てのパラメータを設定した後
apndr
のすべてのパラメータを設定した後、まずこれを試してみました。
Dim hier As Hierarchy = DirectCast(LogManager.GetRepository(), Hierarchy)
hier.Root.AddAppender(apndr)
うまくいかなかった。そこで、一発逆転の発想で、代わりにこれを試してみました。
BasicConfigurator.Configure(apndr)
これもうまくいきませんでした。どなたか、設定ファイルなしでゼロからプログラムでlog4netを設定する方法について、良いリファレンスをお持ちではないでしょうか?
どのように解決するのですか?
私が過去に行った方法のひとつは、設定ファイルを埋め込みリソースとしてインクルードすることであり、単に log4net.Config.Configure(Stream) .
この方法で、私は使い慣れた設定構文を使うことができ、ファイルをデプロイすることを心配する必要はありませんでした。
関連
-
[解決済み】警告。同じ依存アセンブリの異なるバージョン間で競合が見つかりました。
-
[解決済み] CLSID {XXXX} を持つコンポーネントの COM クラスファクトリの取得は、次のエラーにより失敗しました: 80040154。
-
[解決済み] <Database> コンテキストを支えるモデルが、データベース作成後に変更されました。
-
[解決済み] 他のスレッドからGUIを更新するにはどうすればよいですか?
-
[解決済み] gacutil.exeはどこですか?
-
[解決済み] LINQ: フィルタリング基準で SingleOrDefault と FirstOrDefault() を使用する場合
-
[解決済み] 権限 '*' を持つ SSL/TLS の安全なチャネルを確立できませんでした。
-
[解決済み] 実際のサービスはデータを返すのに、なぜWebServiceはnullを返すのですか?
-
[解決済み] .Any() vs .Count() > 0のどちらのメソッドがより良いパフォーマンスを発揮しますか?
-
[解決済み] log4netの設定をコンフィグファイルではなく、コードで行うことは可能ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] CLSID {XXXX} を持つコンポーネントの COM クラスファクトリの取得は、次のエラーにより失敗しました: 80040154。
-
[解決済み] msiexec を使用せずにコマンドラインから MSI ファイルをアンインストールする
-
[解決済み] Marginのプロパティ順
-
[解決済み] "ItemsSourceを使用する前に、Itemsコレクションを空にする必要があります。"
-
[解決済み] Visual Studioの "ターゲットフレームワーク "が見つからない
-
[解決済み] ASP.NET control to render a <div>
-
[解決済み] Windowsイベントログで参照される「フレームワークのバージョン」とは何ですか?
-
[解決済み] 'Newtonsoft.Json' には 'Microsoft.CSharp' の依存関係がすでに定義されています。
-
[解決済み] Visual Studioのコンパイルエラー "mismatch between processor architecture "を修正するにはどうしたらいいですか?
-
[解決済み] log4netの設定をコンフィグファイルではなく、コードで行うことは可能ですか?