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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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.

+ 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