2010-04-15 11 views
2

J'utilise Microsoft Logging Application Block (version 5 bêta 2) et j'essaie de définir dynamiquement le nom de fichier d'un fichier journal sur l'année mois et jour (puis écrire un nouveau fichier journal tous les jours). Toutefois, lors de l'exécution, le consignateur ignore les variables d'environnement dynamiques telles que% date%,% time% ou% cd%. Je peux ajouter des variables d'environnement statiques au nom de fichier (tel que% username%), mais pas des variables d'environnement dynamiques. Est-ce que quelqu'un sait comment faire en sorte que le programme d'écoute de trace du fichier plat dynamique positionne dynamiquement la date dans le nom du fichier journal?Ajouter une date pour enregistrer le nom du fichier dans le bloc Application Logging

(ce que je mettais le nom de fichier comme: LOG_% Date% .log)

Répondre

2

J'ai donné sur l'enregistrement Application Block et à log4net changé. Log4net me permet de définir le nom du journal à la date du jour avec un paramètre web.config. J'ai écrit un article sur le projet de code qui montre comment faire fonctionner log4net avec le bloc d'application de politique d'injection here

5

@Robertc, je sais que cette question a été marquée mais je pense que j'ai un truc que vous pouvez utiliser pour votre prochain projet : Utilisez votre propre variable d'environnement!

E.g. Avant de faire un appel à l'enregistrement Bloc

Environment.SetEnvironmentVariable("MYDATE", "15/07/2010"); // << change the hardcoded date to get from DateTime 
Debug.WriteLine (Environment.ExpandEnvironmentVariables(@"c:\Log\Log_%MYDATE%.log")); 

Dans votre app.config, dans le approprié auditeur Rolling trace de fichier plat

FileName=Log_%MYDATE%.log 

Note: Cette astuce ne fonctionnera que si vous redémarrez votre application quotidienne.