94 votes

Où log4net créera-t-il ce fichier journal?

Lorsque je règle la valeur du fichier sur logs\log-file.txt , où va-t-il créer exactement ce dossier? Dans le répertoire /bin ?

Mon 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 façon de vous connecter:

 ILog logger = LogManager.GetLogger(typeof(CCController));
logger.Error("Some Page", ex);  // where ex is the exception instance
 

79voto

Avijit Chatterjee Points 111

Si vous souhaitez que votre fichier journal soit placé à un emplacement spécifié (le dossier de sortie de votre projet sera décidé au moment de l'exécution), vous pouvez configurer votre entrée de fichier .config de cette manière.

 file type="log4net.Util.PatternString" value="%property{LogFileName}.txt" /
 

puis dans le code avant d'appeler log4net configure , définissez le nouveau chemin comme ci-dessous

  log4net.GlobalContext.Properties["LogFileName"] = @"E:\\file1"; //log file path
 log4net.Config.XmlConfigurator.Configure();
 

Est-ce simple? :)

65voto

Oladipo Olasemo Points 89

il créera le fichier dans le répertoire racine de votre projet / solution.

Vous pouvez spécifier un emplacement de choix dans le fichier Web.config de votre application, comme suit:

    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="c:/ServiceLogs/Olympus.Core.log" />
      <appendToFile value="true" />
      <rollingStyle value="Date" />
      <datePattern value=".yyyyMMdd.log" />
      <maximumFileSize value="5MB" />
      <staticLogFileName value="true" />
      <lockingModel type="log4net.Appender.RollingFileAppender+MinimalLock" />
      <maxSizeRollBackups value="-1" />
      <countDirection value="1" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date %-5level [%thread] %logger - %message%newline%exception" />
      </layout>
    </appender>
 

la balise de fichier spécifie l'emplacement.

20voto

Ben.Vineyard Points 897

La valeur du fichier peut être un chemin absolu comme "c: \ logs \ log.txt" ou un chemin relatif qui, je crois, est relatif au répertoire bin.

En ce qui concerne son implémentation, je place généralement les éléments suivants en haut de la classe à laquelle je souhaite me connecter:

 private static readonly ILog Log = LogManager.GetLogger( 
MethodBase.GetCurrentMethod().DeclaringType);
 

Enfin, vous pouvez l'utiliser comme suit:

 Log.Debug("This is a DEBUG level message.");
 

13voto

Log4net enregistre dans votre dossier de projet. Quelque chose comme: \SolutionFolder\ProjectFolder\bin\SolutionConfiguration\logs\log-file.txt .

Où:

  • SolutionFolder est l'endroit où vous enregistrez votre solution
  • ProjectFolder est le dossier où votre projet réside dans la solution et
  • SolutionConfiguration est le dossier qui contient tous les fichiers binaires de votre projet (le fichier par défaut est Debug ou Release)

J'espère que cela t'aides!

4voto

Peter Lillevold Points 20689

Pour le journal de dossier et de fichier des trucs, aller avec @Bens réponse.

Je vais commenter sur la création du journal, quoique. Imo il n'y a pas de correcte manière. Lors du codage de bûcherons manuellement je le fais de la façon dont vous le faites:

ILog logger = LogManager.GetLogger(typeof(CCController));

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.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X