Bonjour,
Je veux utiliser log4net avec mon site web en asp.net / MVC4 / razor.
Je veux qu'un nouveau fichier se créé dès que nécessaire, un maximum par jour, et avec le nom "SiteWeb_" suivi de la date du jour.
J'ai donc défini ceci dans le web.config:
et ceci dans Global.asax.cs :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 ... <configSections> <sectionGroup name="devExpress"> ... </sectionGroup> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, Log4net" requirePermission="false"/> </configSections> <log4net> <root> <level value="DEBUG"/> <appender-ref ref="RollingLogFileAppender"/> </root> <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> <file type="log4net.Util.PatternString" value="logs\\SiteWeb_%date{yyyyMMdd}.log" /> <param name="appendToFile" value="true"/> <param name="rollingStyle" value="Date" /> <param name="datePattern" value="yyyyMMdd" /> <layout type="log4net.Layout.PatternLayout"> <param name="conversionPattern" value="%date - %level - thread(%thread) : %message%newline"/> </layout> </appender> </log4net>
et dans chaque fichier où je veux faire du log, j'ai ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 protected void Application_Start() { ... log4net.Config.XmlConfigurator.Configure(); ... }
et
Code : Sélectionner tout - Visualiser dans une fenêtre à part public static readonly ILog log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
Or quand j'ai lancé mon serveur le 31/12/2012 il m'a bien créé le fichier SiteWeb_20121231.log par contre quand je suis revenu le 02/01/2013, il m'avait bien PAS créé de fichier le 01/01/2013 mais par contre il a copié le fichier du 31/12/2012 dans SiteWeb_20121231.log20121231 (1er pb...) et a généré les logs du 02/01/2013 dans SiteWeb_20121231.log (2ème pb...). Le contenu de la log en lui-même (au niveau des dates et du formatage) est bon par contre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part log.Info("TEST");
Est-ce que vous pouvez voir ce que j'ai mal déclaré car je ne vois plus de mon côté.
D'avance merci,
Julien
Partager