IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Log4Net et accès au fichier de log


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert

    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2007
    Messages
    3 528
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 528
    Par défaut Log4Net et accès au fichier de log
    (re)Bonjour,

    J'utilise Log4Net pour enregistrer différentes actions dans un fichier XML.
    Je veux pouvoir afficher le contenu du fichier une grille. Trouver le fichier, l'ouvrir et le traiter ne pose aucun problème.

    Par contre, depuis mon appli, le fichier étant utilisé par Log4Net, je ne peux pas l'ouvrir par un StreamReader. Le système me renvoie une erreur disant que le fichier est déjà utilisé.

    J'ai 2 solutions:
    Copier le fichier dans un dossier temporaire et utiliser la copie.
    Détruire mon objet de log et le recréer ensuite pour relancer le log.

    Est-ce qu'il en existerait une autre plus simple à laquelle je n'aurais pas pensé ? J'ai cherché une fonction du genre "disabled" mais je n'ai rien vu de tel.

    Papy !

  2. #2
    Membre émérite Avatar de NicoL__
    Homme Profil pro
    Architecte
    Inscrit en
    Janvier 2011
    Messages
    399
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Janvier 2011
    Messages : 399
    Par défaut
    Bonjour,

    Je ne sais pas si tu as déjà testé mais tu dois pouvoir ouvrir ce fichier en lecture seule avec FileStream et cela devrait marcher.

  3. #3
    Membre Expert

    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2007
    Messages
    3 528
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 528
    Par défaut
    Je vais tenter ça ...

    ...

    Marche pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.IO.FileStream fs = new System.IO.FileStream(f, System.IO.FileMode.Open, System.IO.FileAccess.Read);
    Le processus ne peut pas accéder au fichier 'c:\users\aaaaa\appdata\roaming\bbbbbbbb\logs\log.xml', car il est en cours d'utilisation par un autre processus.

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Tu peux essayer de spécifier ça dans ton appender :

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />

    Avec ça log4net ne prendra le lock que pendant qu'il écrit quelque chose, et le relachera ensuite. Par contre si tu utilises plusieurs threads tu peux toujours avoir des cas où tu essaieras de lire le fichier au moment où log4net écrit dedans, et là ça pètera...

    En fait il faudrait un appender qui autorise le partage en lecture (FileShare.Read), mais ça n'a pas l'air prévu... au pire tu peux toujours créer ton propre appender

  5. #5
    Membre Expert

    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2007
    Messages
    3 528
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 528
    Par défaut
    Excellent !


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 09/09/2009, 11h37
  2. log4net et ecriture dans un fichier de log
    Par topolino dans le forum ASP.NET
    Réponses: 5
    Dernier message: 01/04/2009, 14h28
  3. Log Shipping SQL Server 2000 : Concurrence d'accès aux fichiers
    Par dily0403 dans le forum Administration
    Réponses: 2
    Dernier message: 26/03/2009, 10h21
  4. log4net et fichier de log
    Par topolino dans le forum ASP.NET
    Réponses: 0
    Dernier message: 20/03/2009, 17h06
  5. Réponses: 0
    Dernier message: 22/01/2008, 19h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo