Vous pouvez accéder à la configuration de journalisation par programmation à l'aide du modèle objet (utilisé pour la configuration).
Pour obtenir les données spécifiques de l'écouteur de trace, vous devez consulter TraceListenerData (et les sous-classes spécifiques).
Cet exemple montre comment lire dans la configuration, puis obtenir les TraceListeners:
// Open config file
ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap();
fileMap.ExeConfigFilename = @"MyApp.exe.config";
Configuration config = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);
// Get EL log settings
LoggingSettings log = config.GetSection("loggingConfiguration") as LoggingSettings;
// Get TraceListener info
foreach(TraceListenerData listener in log.TraceListeners)
{
// Check for listener types you care about
if (listener is RollingFlatFileTraceListenerData)
{
RollingFlatFileTraceListenerData data = listener as RollingFlatFileTraceListenerData;
Console.WriteLine(string.Format("Found RollingFlatFileLIstener with Name={0}, FileName={1}, Header={2}, Footer={3}, RollSizeKB={4}, TimeStampPattern={5},RollFileExistsBehavior={6}, RollInterval={7}, TraceOutputOptions={8}, Formatter={9}, Filter={10}",
data.Name, data.FileName, data.Header, data.Footer, data.RollSizeKB,
data.TimeStampPattern, data.RollFileExistsBehavior, data.RollInterval,
data.TraceOutputOptions, data.Formatter, data.Filter);
}
else // other trace listener types e.g. FlatFileTraceListenerData
{
}
}
Une question similaire a été posée sur CodePlex en 2007: http://entlib.codeplex.com/Thread/View.aspx?ThreadId = 16380 –
Est-il acceptable d'utiliser le modèle d'objet de configuration EL pour déterminer les propriétés? Utilisez-vous la configuration programmatique de EL sans configuration XML? –
@Tuzo: Merci de demander. J'utilise la configuration XML, et pour vous d'utiliser le modèle d'objet de configuration EL est acceptable. Pour clarifier davantage ce qui n'est pas acceptable, c'est contourner n'importe quel modèle d'objet EL, par exemple, en extrayant un ancien analyseur XML et en chargeant la configuration avec. J'espère que cela t'aides. –