2016-04-18 2 views
0

Я пытаюсь подключиться к серверу sql с помощью adoNetappender, он работает с app.config, но мне нужно его исключить app.config, это мой тестовый код для adoNetappender.log4net без app.config

[assembly: log4net.Config.XmlConfigurator(Watch = true)] 

имен TestAdoNet {

class Program 
{ 
    private static readonly log4net.ILog logger = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); 

    static void Main(string[] args) 
    { 
     Hierarchy hierarchy = (Hierarchy)LogManager.GetRepository(); 

     PatternLayout patternLayout = new PatternLayout(); 
     patternLayout.ConversionPattern = "%date [%thread] %level %logger - %message%newline"; 
     patternLayout.ActivateOptions(); 

     AdoNetAppender adoNet = new AdoNetAppender(); 

     adoNet.BufferSize = 1; 
     adoNet.Layout = patternLayout; 
     adoNet.ConnectionType = "System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; 
     adoNet.ConnectionString = "data source=.; initial catalog=test;integrated security=true;"; 
     adoNet.CommandText = "INSERT INTO Log2 ([Date],[Thread],[Level],[Logger], [Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)"; 


     AdoNetAppenderParameter logDate = new AdoNetAppenderParameter(); 

     logDate.ParameterName = "@log_date"; 
     logDate.DbType = DbType.DateTime; 
     logDate.Layout = new RawTimeStampLayout(); 

     adoNet.AddParameter(logDate); 

     RawLayoutConverter rlc = new RawLayoutConverter(); 

     AdoNetAppenderParameter logThread = new AdoNetAppenderParameter(); 


     logThread.ParameterName = "@thread"; 
     logThread.DbType = DbType.String; 
     logThread.Size = 255; 
     logThread.Layout = (IRawLayout)rlc.ConvertFrom(new PatternLayout("%thread")); 

     adoNet.AddParameter(logThread); 

     AdoNetAppenderParameter logLevel = new AdoNetAppenderParameter(); 

     logLevel.ParameterName = "@log_level"; 
     logLevel.DbType = DbType.String; 
     logLevel.Size = 50; 
     logLevel.Layout = (IRawLayout)rlc.ConvertFrom(new PatternLayout("%level")); 

     adoNet.AddParameter(logLevel); 

     AdoNetAppenderParameter logLogger = new AdoNetAppenderParameter(); 

     logLogger.ParameterName = "@logger"; 
     logLogger.DbType = DbType.String; 
     logLogger.Size = 255; 
     logLogger.Layout = (IRawLayout)rlc.ConvertFrom(new PatternLayout("%logger")); 

     adoNet.AddParameter(logLogger); 

     AdoNetAppenderParameter logMessage = new AdoNetAppenderParameter(); 

     logMessage.ParameterName = "@message"; 
     logMessage.DbType = DbType.String; 
     logMessage.Size = 4000; 
     logMessage.Layout = (IRawLayout)rlc.ConvertFrom(new PatternLayout("%message")); 

     adoNet.AddParameter(logMessage); 

     AdoNetAppenderParameter logException = new AdoNetAppenderParameter(); 


     logException.ParameterName = "@exception"; 
     logException.DbType = DbType.String; 
     logException.Size = 2000; 
     logException.Layout = (IRawLayout)rlc.ConvertFrom(new ExceptionLayout()); 


     adoNet.ActivateOptions(); 
     hierarchy.Root.AddAppender(adoNet); 
     hierarchy.Root.Level = Level.All; 
     hierarchy.Configured = true; 


     logger.Error("test"); 

    } 
} 

Я попробовал то же самое с rolingfileappender и работает моя единственная проблема в настоящее время является SQL Server. У меня нет сообщений об ошибках, поэтому я не знаю, что не так.

+0

Вам нужно [включить log4net диагностическое ведение журнала] (http://stackoverflow.com/questions/756125/how-to-track-down-log4net-problems), чтобы просмотреть отладочные сообщения log4net может иметь выход. – stuartd

ответ

0

Благодаря @stuartd я нашел

Неправильно: ConnectionType = "System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;",

Справа: ConnectionType = "System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089",

";" в конце была проблема: D

Смежные вопросы