Où va log4net créer ce fichier de log?
Quand j'ai mis le fichier de la valeur à logs\log-file.txt
, exactement où il va créer ce dossier? Dans le /bin
répertoire?
De mon site web.config ressemble à ceci:
<log4net>
<appender name="FileAppender" type="log4net.Appender.FileAppender">
<file value="logs\log-file.txt" />
<appendToFile value="true" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
</appender>
</log4net>
Est-ce la bonne méthode de connexion:
ILog logger = LogManager.GetLogger(typeof(CCController));
logger.Error("Some Page", ex); //where ex is the exception instance
Vous devez vous connecter pour publier un commentaire.
Si vous voulez que votre fichier journal à être placé à un emplacement spécifique qui sera décidé au moment de l'exécution peut être votre répertoire de sortie de projet puis vous pouvez configurer votre
.config
entrée de fichier de cette façonet puis dans le code avant d'appeler
log4net configure
, définir le nouveau chemin comme ci-dessousComment est-il? 🙂
il va créer le fichier dans le répertoire racine de votre projet/solution.
Vous pouvez spécifier un emplacement de choix dans le web.config de votre application comme suit:
le fichier balise indique l'emplacement.
La valeur de fichier peut être soit un chemin absolu comme "c:\logs\log.txt" ou un chemin relatif qui, je crois, est relatif au répertoire bin.
Autant que la mise en œuvre, j'ai l'habitude de placer celui-ci en haut de n'importe quelle classe j'ai l'intention de vous connecter:
Enfin, vous pouvez l'utiliser comme ceci:
Log4net est la sauvegarde dans le dossier de votre projet. Quelque chose comme:
\SolutionFolder\ProjectFolder\bin\SolutionConfiguration\logs\log-file.txt
.Où:
Espérons que cette aide!
yourlogger.Logger.Repository
. Ainsi, vous pouvez faire ceci:yourlogger.Info($"Logfile opened: {m_Logger.Logger.Repository.GetAppenders().OfType<FileAppender>().FirstOrDefault()?.File}");
. Notez qu'il ne cassera pas si quelque chose estnull
.Pour le journal de dossier et de fichier des trucs, aller avec @Bens répondre.
Je vais commenter sur la création du journal, quoique. Imo il n'y a pas de corriger façon. Lors du codage de bûcherons manuellement je le fais de la façon dont vous le faites:
parce qu'il est court et concis.
Cela dit, je ne fais pas de l'enregistreur occurrences dans les classes de ces jours, Je laisse mon conteneur IoC l'injecter pour moi.
Je pense que votre exemple est l'enregistrement de vos dossiers de projet et à moins que le défaut d'iis, ou .NET , l'utilisateur a l'autorisation de création, alors il ne sera pas en mesure de créer le dossier logs.
J'avais créer le dossier logs pour permettre à l'iis complet de l'utilisateur de l'autorisation et de voir si le fichier journal est créé.
si vous voulez choisir dynamiquement le chemin d'accès au fichier journal d'utiliser la méthode qui est écrit dans ce lien: méthode dynamique de choisir le chemin du fichier journal.
si vous le souhaitez, vous pouvez définir le chemin d'accès de l'endroit où votre application EXE fichier existe, ce
puis envoyer ce 'logFileLocation' à la méthode écrite dans le lien ci-dessus comme ceci:
et vous êtes prêt à aller! 🙂
J'ai été développement de .NET de base 2.1 à l'aide de log4net 2.0.8 et trouvé NealWalters code gémit sur 0 arguments pour XmlConfigurator.Configurer(). J'ai trouvé une solution par Matt Watson ici