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

ASP.NET Discussion :

Log4Net adonet base de données [Débutant]


Sujet :

ASP.NET

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 38
    Par défaut Log4Net adonet base de données
    Bonjour à tous,

    j'ai voulu utiliser log4net pour logger les evenements, pour créer un fichier .xml cela fonctionne bien quand je decide de logger les evenemtns dans une base de donéne sq lserver cela ne fonctionne et j'ai pas de message d'erreur.

    Voici mon fichier de config

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <configSections>
        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
      </configSections>
      <connectionstrings>
        <add name="Sql" connectionstring="Data Source=DEV_1\DEV1;Initial Catalog=BDDEXCHANGE;User=sa;Password=msadmin;Min Pool Size=20;Max Pool Size=200;" providername="System.Data.SqlClient"></add>
      </connectionstrings>
      <log4net>
        <root>
          <level value="ALL" />
         <appender-ref ref="AdoNetAppender"></appender-ref>
        </root>  
       <appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
          <bufferSize value="1" />
          <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
          <connectionstring value="Data Source=DEV_1/DEV1;Initial Catalog=BDDEXCHANGE;Persist Security Info=True;User ID=sa;Password=cmadmin"></connectionstring>
          <commandText value="INSERT INTO log ([Message]) VALUES (@message)" />
          <parameter>
            <parameterName value="@message" />
            <dbType value="String" />
            <size value="4000" />
            <layout type="log4net.Layout.PatternLayout">
              <conversionPattern value="%m" />
            </layout>
          </parameter>
        </appender>
      </log4net>
    </configuration>
    Il y a t-il une erreur dans le fichier ?

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    As-tu créé ta table en utilisant l'instruction SQL suivante ?
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CREATE TABLE [dbo].[Log] (
        [Id] [int] IDENTITY (1, 1) NOT NULL,
        [Date] [datetime] NOT NULL,
        [Thread] [varchar] (255) NOT NULL,
        [Level] [varchar] (50) NOT NULL,
        [Logger] [varchar] (255) NOT NULL,
        [Message] [varchar] (4000) NOT NULL,
        [Exception] [varchar] (2000) NULL
    )
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 38
    Par défaut
    oui bien sur , je vous monter ma classe static corresopndante


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    Imports log4net
    Imports log4net.Config
    Imports log4net.Appender
     
    <Assembly: XmlConfigurator(ConfigFile:="Config/log4Net.config", Watch:=True)> 
    Public NotInheritable Class Logger
        Private Sub New()
        End Sub
     
        Private Shared Property Log() As log4net.ILog
            Get
                Return m_Log
            End Get
            Set(value As log4net.ILog)
                m_Log = value
            End Set
        End Property
     
        Private Shared m_Log As log4net.ILog
     
        Shared Sub New()
            BasicConfigurator.Configure()
            m_Log = LogManager.GetLogger(GetType(Logger))
        End Sub
     
        Public Shared ReadOnly Property MonitoringLogger() As ILog
            Get
                Return LogManager.GetLogger("MonitoringLogger")
            End Get
        End Property
     
        Public Shared ReadOnly Property ExceptionLogger() As ILog
            Get
                Return LogManager.GetLogger("ExceptionLogger")
            End Get
        End Property
     
        Public Shared Sub [Error](msg As Object)
            m_Log.[Error](msg)
        End Sub
     
        Public Shared Sub [Error](msg As Object, ex As Exception)
            m_Log.[Error](msg, ex)
        End Sub
     
        Public Shared Sub [Error](ex As Exception)
            m_Log.[Error](ex.Message, ex)
        End Sub
     
        Public Shared Sub Info(msg As Object)
            m_Log.Info(msg)
        End Sub
     
        Public Shared Sub Fatal(msg As Object)
            m_Log.Fatal(msg)
        End Sub
     
        Public Shared Sub Debug(msg As Object)
            m_Log.Debug(msg)
        End Sub
     
        Public Shared Sub Warn(msg As Object)
            m_Log.Warn(msg)
        End Sub
     
        Private Shared Function Logger() As String
            Throw New NotImplementedException
        End Function
     
    End Class

    Et mes appels

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     Try
                Dim idiv As Integer = 0
     
                Dim result As Double = 10 \ idiv
            Catch ex As Exception
                Logger.[Error](ex)
            End Try
     
          Logger.Info("test info")
            Logger.Warn("test warn")
            Logger.Debug("test debug")

  4. #4
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    OK alors comme tu peux le voir dans le code SQL, aucune des colonnes de ta table [dbo].[Log] n'accepte la valeur NULL, excepté la colonne [Exception].

    Ton fichier de configuration ne gère que la colonne [Message]. Je pense donc que tu devrais rajouter la gestion de toutes les colonnes (voici un exemple : http://logging.apache.org/log4net/re...-examples.html).

    Tiens nous au courant si ça résoud ton problème ou non.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 38
    Par défaut
    J'ai créer la table avec le code sql que tu m'as donnée, il y a que exception qui peut etre a null

    et voici du coup mon config :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <configSections>
        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
      </configSections>
      <log4net debug="true">
        <appender name="AdoNetAppender_SqlServer" type="log4net.Appender.AdoNetAppender">
          <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
          <connectionString value="Data Source=DEV_1\SQLEXPRESS2008R2;initial catalog=BDDREFERENCE;integrated security=false;persist security info=True;User ID=sa;Password=msadmin" />
          <commandText value="INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message]) VALUES (@log_date, @thread, @log_level, @logger, @message)" />
          <parameter>
            <parameterName value="@log_date" />
            <dbType value="DateTime" />
            <layout type="log4net.Layout.PatternLayout" value="%date{yyyy'-'MM'-'dd HH':'mm':'ss'.'fff}" />
          </parameter>
          <parameter>
            <parameterName value="@thread" />
            <dbType value="String" />
            <size value="255" />
            <layout type="log4net.Layout.PatternLayout" value="%thread" />
          </parameter>
          <parameter>
            <parameterName value="@log_level" />
            <dbType value="String" />
            <size value="50" />
            <layout type="log4net.Layout.PatternLayout" value="%level" />
          </parameter>
          <parameter>
            <parameterName value="@logger" />
            <dbType value="String" />
            <size value="255" />
            <layout type="log4net.Layout.PatternLayout" value="%logger" />
          </parameter>
          <parameter>
            <parameterName value="@message" />
            <dbType value="String" />
            <size value="4000" />
            <layout type="log4net.Layout.PatternLayout" value="%message" />
          </parameter>
        </appender>
     
        <root>
          <level value="ALL" />
          <appender-ref ref="AdoNetAppender_SqlServer"></appender-ref>
        </root>
      </log4net>
    </configuration>

    et malheureusement ca fonctionne toujours pas

  6. #6
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    Si tu enlèves l'attribut "value" de la propriété "layout" du paramètre "@log_date", c'est pas mieux ?
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 38
    Par défaut
    non il se passe toujours rien je comprend pas alors que quand je crée avec un appender de type fichier , j'ai bien mes informations dedans , c'est juste l'envoie dans une bdd qui fonctionne pas , mon connexionstring est sur d'etre bon

  8. #8
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    J'avoue que là je sèche. Regarde ce tuto et reprend depuis le début : http://www.l4ndash.com/News/tabid/69...e-logging.aspx

    Apparemment leur Section est différente de la tienne, ainsi que la version de la DLL System.Data... Il doit y avoir d'autres différences.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 38
    Par défaut
    en reprenant leur version ca a fonctionné , je verrais demain plus precisemment la veritable raison , merci d'avance

  10. #10
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    Ouais je suis curieux de savoir, si tu arrives à trouver
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 38
    Par défaut
    J'ai ajouter

    <bufferSize value="1"/> dans le config


    et j'ai modifié le parametre date par ceci

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <parameter>
          <parameterName value="@log_date"/>
          <dbType value="DateTime"/>
          <layout type="log4net.Layout.RawTimeStampLayout"/>
        </parameter>


    et tout fonctionne .

    Merci de m'avoir conseillé

  12. #12
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2011
    Messages : 125
    Par défaut
    le %logger il retourne quoi exactement?

  13. #13
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    D'après la doc de log4net :
    Used to output the logger of the logging event. The logger conversion specifier can be optionally followed by precision specifier, that is a decimal constant in brackets.
    If a precision specifier is given, then only the corresponding number of right most components of the logger name will be printed. By default the logger name is printed in full.
    For example, for the logger name "a.b.c" the pattern %logger{2} will output "b.c".
    Donc ça permet d'afficher l'espace de nom du composant avec la précision souhaitée.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  14. #14
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2011
    Messages : 125
    Par défaut
    Merci

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

Discussions similaires

  1. Problème Base de données et CRecordSet
    Par LE CHAKAL dans le forum MFC
    Réponses: 3
    Dernier message: 20/08/2002, 11h59
  2. connexion base de donné
    Par saidi dans le forum MFC
    Réponses: 3
    Dernier message: 07/08/2002, 22h22
  3. [Concept] Stabilité d'une base de donnée
    Par lassmust dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 03/07/2002, 16h16
  4. Bases de données
    Par dev dans le forum C++Builder
    Réponses: 4
    Dernier message: 01/07/2002, 22h55
  5. associer une base de données(access) a un dbgrid
    Par ange1708 dans le forum MFC
    Réponses: 3
    Dernier message: 11/06/2002, 12h18

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