1

Dans MS Enterprise Library 5.0, Blocage de l'application de journalisation, au moment de l'exécution, Puis-je obtenir le nom du fichier journal (Flat File Listener) vers lequel le journal va?Récupère le nom de fichier du fichier journal actuel Enterprise Library 5.0

+0

Avez-vous essayé _anything_? –

+0

J'ai essayé les différentes méthodes disponibles sur le LogWriter, et j'ai essayé de trouver sur Internet si quelqu'un avait la même question. – ViV

Répondre

2

Vous pouvez obtenir cette information en utilisant les objets de configuration:

IConfigurationSource configSource = ConfigurationSourceFactory.Create(); 
var logSettings = configSource.GetSection(LoggingSettings.SectionName) as LoggingSettings; 

var flatFileTraceListener = logSettings.TraceListeners 
    .First(t => t is FlatFileTraceListenerData) as FlatFileTraceListenerData; 

string fileName = flatFileTraceListener.FileName; 

Cela suppose que vous êtes intéressé par le premier écouteur de la trace qui est un FlatFileTraceListener. Si vous souhaitez obtenir l'écouteur de trace par type et par nom, vous pouvez le faire aussi:

IConfigurationSource configSource = ConfigurationSourceFactory.Create(); 
var logSettings = configSource.GetSection(LoggingSettings.SectionName) as LoggingSettings; 

var flatFileTraceListener = logSettings.TraceListeners 
    .FirstOrDefault(t => t is FlatFileTraceListenerData && t.Name == "Flat File Trace Listener") 
    as FlatFileTraceListenerData; 

string fileName = flatFileTraceListener.FileName; 
0

Modifier la configuration ne pose aucun problème.
Après avoir modifié la propriété du nom de fichier aaa.log ->bbb.log l'enregistreur n'écrit pas dans le nouveau nom de fichier.
La config modifiée doit être enregistrée/activée (?) Ou l'enregistreur doit être nouveau Initialized ..! ??

IConfigurationSource configSource = ConfigurationSourceFactory.Create(); 
    var logSettings = configSource.GetSection(LoggingSettings.SectionName) as LoggingSettings; 

    var rollFileTraceListener = logSettings.TraceListeners 
     .FirstOrDefault(t => t is RollingFlatFileTraceListenerData && t.Name == "RollingFlatFileTraceListener") 
     as RollingFlatFileTraceListenerData; 

    string fileName = rollFileTraceListener.FileName; 
    rollFileTraceListener.FileName = fileName.Replace("aaa", "bbb"); 

    LogWriterFactory f = new LogWriterFactory(configSource); 
    f.Create(); 
    Logger.Reset(); 
    LogEntry logEntry = new LogEntry(); 
    logEntry.Message = $"{DateTime.Now} Count:{333}"; 
    logEntry.Categories.Clear(); 
    logEntry.Categories.Add("General"); 

    Logger.Write(logEntry); 
Questions connexes