J'utilise le bloc Application de journalisation avec C# .Net 2.0. Mon code enregistre les informations d'erreur dans un fichier plat. J'ai placé toute la configuration requise dans web.config comme les écouteurs, les formateurs et les catégories, etc. comme décrit dans msdn et cela fonctionne très bien. Mais le problème est que je ne peux pas mettre plus de 50 caractères dans la propriété le.Message. Dans mon cas, la trace de la pile est longue de plus de 500 caractères et je veux me connecter au fichier plat en cas d'erreur.trace de pile de journalisation avec enregistreur
est-il une limite au nombre de charactors nous pouvons mettre à l'intérieur du message propriété d'objet logentry? ou existe-t-il un autre moyen de consigner la trace de la pile dans le fichier plat de l'enregistreur?
Voici le code simple.
LogEntry le = new LogEntry();
le.Categories.Add("ErrorsToEventLog");
le.Categories.Add("ErrorsToLogFile");
le.Title = "Error message";
le.TimeStamp = System.DateTime.Now;
le.Severity = System.Diagnostics.TraceEventType.Error;
le.Message = "<text of error's stack trace>";
Logger.write(le);
paramètres de configuration
<configSections>
<section name="loggingConfiguration"
type="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.LoggingSettings,
Microsoft.Practices.EnterpriseLibrary.Logging, Version=4.1.0.0, Culture=neutral,
PublicKeyToken=null" />
<section name="dataConfiguration"
type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings,
Microsoft.Practices.EnterpriseLibrary.Data, Version=4.1.0.0, Culture=neutral,
PublicKeyToken=null" />
</configSections>
Voici le formatter, je
<formatters>
<add template="Timestamp: {timestamp} Message: {message}"
type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter,
Microsoft.Practices.EnterpriseLibrary.Logging, Version=4.1.0.0,
Culture=neutral, PublicKeyToken=null" name="Text Formatter" />
</formatters>
Et est ici l'auditeur,
<add fileName="Logs/ErrorLog_{Date}.log"
listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.
CustomTraceListenerData,
Microsoft.Practices.EnterpriseLibrary.Logging, Version=4.1.0.0, Culture=neutral,
PublicKeyToken=null" traceOutputOptions="None"
type="EnterpriseLibrary.Logging.Extensions.RollingFlatFileTraceListener,
EnterpriseLibrary.Logging.Extensions, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=null" name="Custom TraceListener" initializeData="" />
Catégories
<categorySources>
<add switchValue="All" name="ErrorsToEventLog">
<listeners>
<add name="Formatted EventLog TraceListener" />
</listeners>
</add>
<add switchValue="All" name="ErrorsToLogFile">
<listeners>
<add name="Custom TraceListener" />
</listeners>
</add>
</categorySources>
Pouvez-vous poster les auditeurs et les sources configs? – StingyJack
a modifié mon message avec plus d'info –
Est-il possible qu'un charactor spécial dans la trace de la pile bloque le processus d'écriture du fichier? parce que si j'ai plus de 50 charactères dans la trace de pile, le fichier lui-même n'est pas créé? C'est juste une supposition ... –