Beispiel #1
0
        private static XElement GetDefaultConfiguration(
            string businessLogFileFullname, LogLevel businessMinimumLogLevel,
            string technicalLogFileFullname, LogLevel technicalMinimumLogLevel,
            Type connectionType, string connectionStringName, string logTableName)
        {
            return(new XElement("log4net",

                                new XElement("appender", new XAttribute("name", "DebugAppender"), new XAttribute("type", "log4net.Appender.DebugAppender"),
                                             new XElement("immediateFlush", new XAttribute("value", "true")),
                                             new XElement("layout", new XAttribute("type", "Sonata.Diagnostics.Logs.Layouts.SourcePatternLayout, Sonata.Diagnostics"),
                                                          new XElement("conversionPattern", new XAttribute("value", "%utcdate{ISO8601} %10.10level %20.20identity %20.20username %50.50source - [%20.20code]: %message%newline")))),

                                new XElement("appender", new XAttribute("name", "BusinessRollingFileAppender"), new XAttribute("type", "log4net.Appender.RollingFileAppender"),
                                             new XElement("file", new XAttribute("value", businessLogFileFullname)),
                                             new XElement("appendToFile", new XAttribute("value", "true")),
                                             new XElement("rollingStyle", new XAttribute("value", "Composite")),
                                             new XElement("maxSizeRollBackups", new XAttribute("value", "10")),
                                             new XElement("maximumFileSize", new XAttribute("value", "10MB")),
                                             new XElement("staticLogFileName", new XAttribute("value", "false")),
                                             new XElement("layout", new XAttribute("type", "Sonata.Diagnostics.Logs.Layouts.SourcePatternLayout, Sonata.Diagnostics"),
                                                          new XElement("conversionPattern", new XAttribute("value", "%utcdate{ISO8601} %10.10level %20.20identity %20.20username %50.50source - [%20.20code]: %message%newline")))),

                                new XElement("appender", new XAttribute("name", "TechnicalRollingFileAppender"), new XAttribute("type", "log4net.Appender.RollingFileAppender"),
                                             new XElement("file", new XAttribute("value", technicalLogFileFullname)),
                                             new XElement("appendToFile", new XAttribute("value", "true")),
                                             new XElement("rollingStyle", new XAttribute("value", "Composite")),
                                             new XElement("maxSizeRollBackups", new XAttribute("value", "10")),
                                             new XElement("maximumFileSize", new XAttribute("value", "10MB")),
                                             new XElement("staticLogFileName", new XAttribute("value", "false")),
                                             new XElement("layout", new XAttribute("type", "Sonata.Diagnostics.Diagnostics.Logs.Layouts.SourcePatternLayout, Sonata.Diagnostics"),
                                                          new XElement("conversionPattern", new XAttribute("value", "%utcdate{ISO8601} %20.20level %20.20identity %20.20username %50.50source - [%20.20code]: %message %exception%newline")))),

                                new XElement("appender", new XAttribute("name", "BusinessAdoNetAppender"), new XAttribute("type", "Sonata.Diagnostics.Logs.Appenders.AdoNetAppender"),
                                             new XElement("bufferSize", new XAttribute("value", "1")),
                                             new XElement("connectionType", new XAttribute("value", connectionType == null || connectionType.AssemblyQualifiedName == null ? String.Empty : connectionType.AssemblyQualifiedName)),
                                             new XElement("connectionStringName", new XAttribute("value", connectionStringName)),
                                             new XElement("commandText", new XAttribute("value", String.Format("INSERT INTO {0} ([LOG_date],[LOG_level],[LOG_identity],[LOG_username],[LOG_source],[LOG_code],[LOG_message]) VALUES (@log_date, @log_level, @identity, @username, @source, @code, @message)", logTableName))),
                                             new XElement("parameter",
                                                          new XElement("parameterName", new XAttribute("value", "@log_date")),
                                                          new XElement("dbType", new XAttribute("value", "DateTime")),
                                                          new XElement("layout", new XAttribute("type", "log4net.Layout.RawUtcTimeStampLayout"))),

                                             new XElement("parameter",
                                                          new XElement("parameterName", new XAttribute("value", "@log_level")),
                                                          new XElement("dbType", new XAttribute("value", "String")),
                                                          new XElement("size", new XAttribute("value", "20")),
                                                          new XElement("layout", new XAttribute("type", "log4net.Layout.PatternLayout"),
                                                                       new XElement("conversionPattern", new XAttribute("value", "%level")))),

                                             new XElement("parameter",
                                                          new XElement("parameterName", new XAttribute("value", "@identity")),
                                                          new XElement("dbType", new XAttribute("value", "String")),
                                                          new XElement("size", new XAttribute("value", "100")),
                                                          new XElement("layout", new XAttribute("type", "log4net.Layout.PatternLayout"),
                                                                       new XElement("conversionPattern", new XAttribute("value", "%identity")))),

                                             new XElement("parameter",
                                                          new XElement("parameterName", new XAttribute("value", "@username")),
                                                          new XElement("dbType", new XAttribute("value", "String")),
                                                          new XElement("size", new XAttribute("value", "100")),
                                                          new XElement("layout", new XAttribute("type", "log4net.Layout.PatternLayout"),
                                                                       new XElement("conversionPattern", new XAttribute("value", "%username")))),

                                             new XElement("parameter",
                                                          new XElement("parameterName", new XAttribute("value", "@source")),
                                                          new XElement("dbType", new XAttribute("value", "String")),
                                                          new XElement("size", new XAttribute("value", "200")),
                                                          new XElement("layout", new XAttribute("type", "Sonata.Diagnostics.Logs.Layouts.SourcePatternLayout, Sonata.Diagnostics"),
                                                                       new XElement("conversionPattern", new XAttribute("value", "%source")))),

                                             new XElement("parameter",
                                                          new XElement("parameterName", new XAttribute("value", "@code")),
                                                          new XElement("dbType", new XAttribute("value", "String")),
                                                          new XElement("size", new XAttribute("value", "200")),
                                                          new XElement("layout", new XAttribute("type", "Sonata.Diagnostics.Logs.Layouts.SourcePatternLayout, Sonata.Diagnostics"),
                                                                       new XElement("conversionPattern", new XAttribute("value", "%code")))),

                                             new XElement("parameter",
                                                          new XElement("parameterName", new XAttribute("value", "@message")),
                                                          new XElement("dbType", new XAttribute("value", "String")),
                                                          new XElement("size", new XAttribute("value", "4000")),
                                                          new XElement("layout", new XAttribute("type", "log4net.Layout.PatternLayout"),
                                                                       new XElement("conversionPattern", new XAttribute("value", "%message"))))),

                                new XElement("root",
                                             new XElement("level", new XAttribute("value", "ALL")),
                                             new XElement("appender-ref", new XAttribute("ref", "DebugAppender"))),

                                new XElement("logger", new XAttribute("name", "Technical"),
                                             new XElement("level", new XAttribute("value", technicalMinimumLogLevel.GetStringValue())),
                                             new XElement("appender-ref", new XAttribute("ref", "TechnicalRollingFileAppender"))),

                                new XElement("logger", new XAttribute("name", "Business"),
                                             new XElement("level", new XAttribute("value", businessMinimumLogLevel.GetStringValue())),
                                             new XElement("appender-ref", new XAttribute("ref", "BusinessAdoNetAppender")),
                                             new XElement("appender-ref", new XAttribute("ref", "BusinessRollingFileAppender")))));
        }