2010-01-22 7 views
2

J'ai étendu AppenderSkeleton pour créer un appender personnalisé appelé HTTPAppender, mais quelque chose est en place avec la référence dans le fichier xml. Log4Net est clairement incapable de trouver mon appender personnalisé. Y a-t-il un moyen de le référencer à partir du fichier xml pour pointer vers mon projet, ou devrais-je ajouter le code source de mon appender personnalisé à celui de log4net afin qu'il soit empaqueté dans log4net.dll?log4net: Erreur lors du chargement de l'appender personnalisé

Je reçois l'erreur suivante dans la fenêtre immédiate lors du débogage:

log4net:ERROR XmlHierarchyConfigurator: Could not create Appender [HTTPAppender] of type [HTTPAppender.HTTPAppender,HTTPAppender]. Reported error follows. 
System.IO.FileNotFoundException: Could not load file or assembly 'HTTPAppender' or one of its dependencies. The system cannot find the file specified. 
File name: 'HTTPAppender' 
    at System.RuntimeTypeHandle._GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark, Boolean loadTypeFromPartialName) 
    at System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark) 
...etc

est ici la section log4net du fichier xml:

<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>

Répondre

6

Si vous utilisez des assemblages non standard, placez-les dans le répertoire de l'application avec votre assemblage. Si cela ne vous aide pas, essayez de donner un nom fort à votre assembly et utilisez le nom complet dans le fichier de configuration log4net. vous pouvez également essayer de le mettre dans GAC.

+0

Cette autre question explique un peu plus: https://stackoverflow.com/questions/ 20082614/assembly-not-loaded-c-sharp – BrunoJCM

2

Je suppose que l'Assemblée ne peut pas être trouvé . Le nom de l'assembly est-il en effet 'HTTPAppender' et est-il dans le même chemin que l'assembly appelant?

1

J'ai eu le même problème. Si votre projet d'appender personnalisé utilise un certain log4net.dll, et que votre projet qui va utiliser votre appender personnalisé utilise un log4net.dll différent, il ne pourra pas le trouver.

0

J'ai aussi été coincé dans ce problème et finalement je l'ai corrigé.

La solution est La classe HTTPAppender doit avoir un par défaut.

Je suis confiant que cette erreur « Impossible de créer Appender » est venu parce que ne pas constructeur par défaut

Questions connexes