5

AppenderSkeletonを拡張してHTTPAppenderというカスタムアペンダーを作成しましたが、xmlファイルでの参照に問題があります。Log4Netは明らかに私のカスタムアペンダーを見つけることができません。xmlファイルからプロジェクトを指すように参照する方法はありますか?それとも、カスタムアペンダーのソースコードをlog4netに追加して、log4net.dllにパッケージ化する必要がありますか?

デバッグ時にイミディエイトウィンドウに次のエラーが表示されます。

log4net:ERROR XmlHierarchyConfigurator:タイプ[HTTPAppender.HTTPAppender、HTTPAppender]のAppender[HTTPAppender]を作成できませんでした。報告されたエラーは次のとおりです。
System.IO.FileNotFoundException:ファイルまたはアセンブリ'HTTPAppender'またはその依存関係の1つを読み込めませんでした。システムは、指定されたファイルを見つけることができません。
ファイル名:'HTTPAppender'
   System.RuntimeTypeHandle._GetTypeByName(文字列名、ブール値throwOnError、ブール値ignoreCase、ブール値reflectionOnly、StackCrawlMark&stackMark、ブール値loadTypeFromPartialName)
   System.RuntimeTypeHandle.GetTypeByName(文字列名、ブール値throwOnError、ブール値ignoreCase、ブール値reflectionOnly、StackCrawlMark&stackMark)で
...等

xmlファイルのlog4netセクションは次のとおりです。

<log4net> <appender name="HTTPAppender" type="HTTPAppender.HTTPAppender,HTTPAppender"> <evaluator type="log4net.Core.LevelEvaluator,log4net"> <threshold value="WARN"/> </evaluator> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="#%level - %message" /> </layout> </appender> <root> <level value="ALL" /> <appender-ref ref="HTTPAppender" /> </root> <logger name="log4netErrorLog" > <level value="DEBUG" /> <appender-ref ref="HTTPAppender" /> </logger> </log4net>

4

6 に答える 6

8

私はこれがあなたを助けると思う

http://weblogs.asp.net/tgraham/archive/2007/05/02/loading-the-assembly-for-a-custom-log4net-appender.aspx

于 2011-07-18T08:16:56.600 に答える
6

非標準のアセンブリを使用している場合は、それらをアセンブリと共にアプリケーション ディレクトリに配置します。それでも問題が解決しない場合は、アセンブリに厳密な名前を付けて、log4net 構成ファイルで完全な名前を使用してみてください。GACに入れてみることもできます。

于 2010-01-22T12:09:22.407 に答える
2

アセンブリが見つからないと思います。アセンブリの名前は実際に「HTTPAppender」であり、呼び出しアセンブリと同じパスにありますか?

于 2010-01-22T10:20:48.807 に答える
1

私は同じ問題を抱えていました。カスタム アペンダー プロジェクトが特定log4net.dllの を使用し、カスタム アペンダーを使用する予定のプロジェクトが別の を使用する場合log4net.dll、それを見つけることができません。

于 2014-09-20T12:36:47.280 に答える