Example #1
0
        public static void Log(LogLevelEnum logLevel, string msg, params object[] args)
        {
            if (!LoggingEnabled) return; // No logging allowed..
            if(args != null)
            {
                if(args.Length > 0)
                    msg = string.Format(msg, args);
            }

            switch(logLevel)
            {
                case LogLevelEnum.DEBUG:
                    logger.Debug(msg);
                    break;
                case LogLevelEnum.INFO:
                    logger.Info(msg);
                    break;
                case LogLevelEnum.WARN:
                    logger.Warn(msg);
                    break;
                case LogLevelEnum.ERROR:
                    logger.Error(msg);
                    break;
                case LogLevelEnum.FATAL:
                    logger.Fatal(msg);
                    break;
            }
        }
Example #2
0
 /// <summary>
 /// 日志构造函数
 /// </summary>
 /// <param name="loglevel"></param>
 /// <param name="msg"></param>
 /// <param name="msgKey"></param>
 /// <param name="moduleName"></param>
 internal LogInfo(LogLevelEnum loglevel, object msg, string msgKey = null, string moduleName = ModuleNames.Default)
 {
     Level = loglevel;
     ModuleName = moduleName;
     Msg = msg;
     MsgKey = msgKey;
 }
Example #3
0
        public void LogMessage(LogLevelEnum messageLogLevel, String format, params object[] args)
        {
            if (_logLevel == LogLevelEnum.logNothing) return;

            String message = String.Format(format, args);
            switch (messageLogLevel)
            {
                case LogLevelEnum.logError:
                    // Always log an error
                    LogToFile(messageLogLevel, message);
                    break;
                case LogLevelEnum.logWarning:
                    if ((_logLevel == LogLevelEnum.logWarning) ||
                        (_logLevel == LogLevelEnum.logDebug))
                    {
                        // Only log a warning at warning and debug level
                        LogToFile(messageLogLevel, message);
                    }
                    break;
                case LogLevelEnum.logDebug:
                    if (_logLevel == LogLevelEnum.logDebug)
                    {
                        // Only log a debug at debug level
                        LogToFile(messageLogLevel, message);
                    }
                    break;
                default:
                    break;
            }
        }
Example #4
0
        private TraceEventType ConvertToTraceEventType(LogLevelEnum level)
        {
            // Declaration
            TraceEventType resultLevel;

            // Initialization
            resultLevel = TraceEventType.Information;

            // Implementation
            switch (level)
            {
                case LogLevelEnum.Information:
                    resultLevel = TraceEventType.Information;
                    break;
                case LogLevelEnum.Warning:
                    resultLevel = TraceEventType.Warning;
                    break;
                case LogLevelEnum.Error:
                    resultLevel = TraceEventType.Error;
                    break;
                case LogLevelEnum.Critical:
                    resultLevel = TraceEventType.Critical;
                    break;
                default:
                    break;
            }

            return resultLevel;
        }
 public ApplicationInsightLoggerFactory(
     LogLevelEnum defaultMinimumLogLevel,
     IFullyQualifiedName defaultLoggerSource)
 {
     _defaultMinimumLogLevel = defaultMinimumLogLevel;
     _defaultLoggerSource = defaultLoggerSource;
 }
 public void Log(LogLevelEnum level, string message, params object[] additionalData)
 {
     if (level >= _minimumLogLevel)
     {
         string source = _source?.FullyQualifiedName ?? "default";
         Console.WriteLine($"{source} - {level.ToString().ToUpper()} : {string.Format(message, additionalData)}");
     }
 }
 public static IDependencyResolver UseAzureApplicationInsightsLogger(
     this IDependencyResolver dependencyResolver,
     LogLevelEnum defaultMinimumLogLevel = LogLevelEnum.Warning,
     IFullyQualifiedName defaultLoggerSource = null)
 {
     return dependencyResolver
         .Register<ILoggerFactory>(() => new ApplicationInsightLoggerFactory(defaultMinimumLogLevel, defaultLoggerSource))
         .Register(() => new ApplicationInsightLoggerFactory(defaultMinimumLogLevel, defaultLoggerSource).CreateLogger());
 }
 public Task LogAsync(LogLevelEnum level, string message, params object[] additionalData)
 {
     if (level >= _minimumLogLevel)
     {
         string source = _source?.FullyQualifiedName ?? "default";
         Write(level, $"{source} - {level.ToString().ToUpper()} : {string.Format(message, additionalData)}");
     }
     return Task.FromResult(0);
 }
 public ILogger CreateLogger(IFullyQualifiedName source, LogLevelEnum? minimumLogLevel = null)
 {
     return new AzureQueueLogger.Implementation.QueueLogger(_runtimeEnvironment,
         GetQueue(),
         _queueSerializer,
         source ?? _defaultLoggerSource,
         _queueLoggerExtension,
         minimumLogLevel.GetValueOrDefault(_defaultMinimumLogLevel),
         _correlationIdProvider);
 }
 public global::Serilog.ILogger CreateSerilog(IFullyQualifiedName source, LogLevelEnum? minimumLogLevel = null)
 {
     LoggerConfiguration loggerConfiguration = GetLoggerConfiguration(minimumLogLevel);
     source = source ?? _defaultLoggerSource;
     if (source != null)
     {
         loggerConfiguration.Enrich.With(new FullyQualifiedNameEnricher(source, _sourceFqnPropertyName));
     }
     return new LoggerFacade(loggerConfiguration.CreateLogger());
 }
Example #11
0
 ///<inheritdoc/>
 public override void WriteLog(LogLevelEnum logLevel, string msg)
 {
     if( sw != null )
     {
         if (logLevel >= MinLogLevel)
         {
             sw.WriteLine(msg);
             if (!isAutoFlush)
                 sw.Flush();
         }
     }
 }
Example #12
0
        /// <summary>
        /// Logs the message.
        /// </summary>
        /// <param name="message">The message.</param>
        /// <param name="level">The level of message Severity.</param>
        public void LogMessage(string message, LogLevelEnum loglevel)
        {
            // Declaration
            TraceEventType level;

            // Implementation
            if (loglevel.CompareTo(loggerLevel) >= 0)
            {
                level = ConvertToTraceEventType(loglevel);
                writeLog(message, level);
            }
        }
 /// <summary>
 /// Register Serilog as the frameworks default logger.
 /// </summary>
 /// <param name="dependencyResolver">Dependency resolver to register Serilog in</param>
 /// <param name="configurationProvider">A function that returns a SeriLog LoggerConfiguration class.
 /// If null then Serilog is configured to write using the Trace sink. Note that a LoggerConfiguration returned from this function
 /// will be further annotated with a minimum log level and property enrichment for correlation ID and source. If you don't want
 /// any of that then use the CreateSerilog(LoggerConfiguration loggerConfiguration) on ISerilogFactory</param>
 /// <param name="defaultMinimumLogLevel">The default minimum log level for loggers created by the factory</param>
 /// <param name="defaultLoggerSource">The component source to use for a logger when no source is specified - defaults to null.</param>
 /// <param name="sourceFqnPropertyName">The Serilog property name for the source component fully qualified name</param>
 /// <param name="correlationIdPropertyName">The Serilog property name for the correlation ID</param>
 /// <returns></returns>
 public static IDependencyResolver UseSerilog(this IDependencyResolver dependencyResolver,
     Func<LoggerConfiguration> configurationProvider = null,
     LogLevelEnum defaultMinimumLogLevel = LogLevelEnum.Warning,
     IFullyQualifiedName defaultLoggerSource = null,
     string sourceFqnPropertyName = "SourceFqn",
     string correlationIdPropertyName = "CorrelationId")
 {
     return dependencyResolver
         .Register<ILoggerFactory>(() => new SerilogFactory(configurationProvider, dependencyResolver.Resolve<ICorrelationIdProvider>(), defaultMinimumLogLevel, defaultLoggerSource, sourceFqnPropertyName, correlationIdPropertyName))
         .Register<ISerilogFactory>(() => new SerilogFactory(configurationProvider, dependencyResolver.Resolve<ICorrelationIdProvider>(), defaultMinimumLogLevel, defaultLoggerSource, sourceFqnPropertyName, correlationIdPropertyName))
         .Register(() => new SerilogFactory(configurationProvider, dependencyResolver.Resolve<ICorrelationIdProvider>(), defaultMinimumLogLevel, defaultLoggerSource, sourceFqnPropertyName, correlationIdPropertyName).CreateLogger())
         .Register(() => new SerilogFactory(configurationProvider, dependencyResolver.Resolve<ICorrelationIdProvider>(), defaultMinimumLogLevel, defaultLoggerSource, sourceFqnPropertyName, correlationIdPropertyName).CreateSerilog());
 }
 /// <summary>
 /// Register the dependencies in a container
 /// </summary>
 /// <param name="container">The container to use</param>
 /// <param name="correlationIdKey">The correlation ID key. Defaults to correlation-id</param>
 /// <param name="defaultTraceLoggerMinimumLogLevel"></param>
 /// <param name="defaultLoggerSource">The component source to use for a default logger when no source is specified - defaults to null.</param>
 public static IDependencyResolver UseCore(
     this IDependencyResolver container,
     string correlationIdKey = "correlation-id",
     LogLevelEnum defaultTraceLoggerMinimumLogLevel = LogLevelEnum.Warning,
     IFullyQualifiedName defaultLoggerSource = null)
 {
     Func<ICorrelationIdProvider> createCorrelationIdProvider;
     if (!string.IsNullOrWhiteSpace(correlationIdKey))
     {
         createCorrelationIdProvider = () => new CallContextCorrelationIdProvider(correlationIdKey);
     }
     else
     {
         createCorrelationIdProvider = () => new NullCorrelationIdProvider();
     }
     return container
         .Register<IAsynchronousDelay, AsynchronousDelay>()
         .Register<ITimerThreadPoolExecuter, TimerThreadPoolExecuter>()
         .Register<ITimerFactory, TimerFactory>()
         .Register<IBackoffPolicy, BackoffPolicy>()
         .Register<IBackoffPolicyTimingProvider, BackoffPolicyDefaultTimingProvider>()
         .Register<IAsynchronousBackoffPolicy, AsynchronousBackoffPolicy>()
         .Register<IBackoffPolicyFactory, BackoffPolicyFactory>()
         .Register<ILeasedRetry, LeasedRetry>()
         .Register<IWaitHandle, ManualResetEventWaitHandle>()
         .Register<IApplicationResourceSettingNameProvider, ApplicationResourceSettingNameProvider>()
         .Register<IAsyncApplicationResourceSettingProvider, AsyncApplicationResourceSettingProvider>()
         .Register<IAsyncApplicationResourceFactory, AsyncApplicationResourceFactory>()
         .Register<IApplicationResourceFactory, ApplicationResourceFactory>()
         .Register<IApplicationResourceSettingProvider, ApplicationResourceSettingProvider>()
         .Register<IQueueFactory, NotSupportedQueueFactory>()
         .Register<ILeaseManagerFactory, NotSupportedLeaseManagerFactory>()
         .Register<IBlobRepositoryFactory, NotSupportedBlobRepositoryFactory>()
         .Register(createCorrelationIdProvider)
         .Register<ILoggerFactory>(() => new TraceLoggerFactory(defaultTraceLoggerMinimumLogLevel, defaultLoggerSource))
         .Register(() => new TraceLoggerFactory(defaultTraceLoggerMinimumLogLevel, defaultLoggerSource).CreateLogger())
         .Register(() => new TraceLoggerFactory(defaultTraceLoggerMinimumLogLevel, defaultLoggerSource).CreateAsynchronousLogger(defaultTraceLoggerMinimumLogLevel))
         .Register<IComponentHost, ComponentHost>()
         .Register<IEmailQueueDispatcher, EmailQueueDispatcher>()
         .Register<IUnitOfWorkFactoryProvider, NotSupportedUnitOfWorkFactoryProvider>()
         .Register<IRuntimeEnvironment, DefaultRuntimeEnvironment>()
         .Register<IConfiguration>(() => new DefaultConfiguration())
         .Register<IAsyncConfiguration>(() => new DefaultAsyncConfiguration())
         .Register<IComponentFactory>(() => new ComponentFactory(container))
         .Register<IComponentHostRestartHandler, DefaultComponentHostRestartHandler>()
         .Register<ILargeMessageQueueFactory, LargeMessageQueueFactory>()                
         // internal
         .Register<ICoreAssemblyLogger>(() =>
             new CoreAssemblyLogger(container.Resolve<ILoggerFactory>().CreateLogger(new LoggerSource("AccidentalFish.ApplicationSupport.Core"))));
 }
 public SerilogFactory(Func<LoggerConfiguration> loggerConfigurationProvider,
     ICorrelationIdProvider correlationIdProvider,
     LogLevelEnum defaultMinimumLogLevel,
     IFullyQualifiedName defaultLoggerSource,
     string sourceFqnPropertyName,
     string correlationIdPropertyName)
 {
     _loggerConfigurationProvider = loggerConfigurationProvider;
     _correlationIdProvider = correlationIdProvider;
     _defaultMinimumLogLevel = defaultMinimumLogLevel;
     _defaultLoggerSource = defaultLoggerSource;
     _sourceFqnPropertyName = sourceFqnPropertyName;
     _correlationIdPropertyName = correlationIdPropertyName;
 }
 private LoggerConfiguration GetLoggerConfiguration(LogLevelEnum? minimumLogLevel)
 {
     var configuration = _loggerConfigurationProvider != null ?
         _loggerConfigurationProvider() :
         new LoggerConfiguration().WriteTo.Trace();
     configuration
         .MinimumLevel
         .Is(minimumLogLevel.GetValueOrDefault(_defaultMinimumLogLevel).ToLogEventLevel())
         .Enrich.With(new CorrelationIdEnricher(_correlationIdProvider, _correlationIdPropertyName))
         .Enrich.WithThreadId()
         .Enrich.WithProcessId()
         .Enrich.WithMachineName();
     return configuration;
 }
        private static ILoggerFactory GetLoggerFactory(
            IDependencyResolver dependencyResolver,
            LogLevelEnum defaultMinimumLogLevel,
            IFullyQualifiedName defaultLoggerSource)
        {
            IRuntimeEnvironment runtimeEnvironment = dependencyResolver.Resolve<IRuntimeEnvironment>();
            IConfiguration configuration = dependencyResolver.Resolve<IConfiguration>();
            IQueueLoggerExtension queueLoggerExtension = dependencyResolver.Resolve<IQueueLoggerExtension>();
            ICorrelationIdProvider correlationIdProvider = dependencyResolver.Resolve<ICorrelationIdProvider>();
            IQueueSerializer queueSerializer = dependencyResolver.Resolve<IQueueSerializer>();
            IApplicationResourceSettingNameProvider nameProvider = dependencyResolver.Resolve<IApplicationResourceSettingNameProvider>();

            return new QueueLoggerFactory(runtimeEnvironment, nameProvider, configuration, queueSerializer, queueLoggerExtension,
                correlationIdProvider, defaultMinimumLogLevel, defaultLoggerSource);
        }
        public static IDependencyResolver UseQueueLogger(this IDependencyResolver dependencyResolver,
            Type loggerExtension = null,
            LogLevelEnum defaultMinimumLogLevel = LogLevelEnum.Warning,
            IFullyQualifiedName defaultLoggerSource = null)
        {
            if (loggerExtension == null)
            {
                loggerExtension = typeof (NullQueueLoggerExtension);
            }

            return dependencyResolver
                .Register(typeof (IQueueLoggerExtension), loggerExtension)
                .Register(() => GetLoggerFactory(dependencyResolver, defaultMinimumLogLevel, defaultLoggerSource))
                .Register(() => GetLoggerFactory(dependencyResolver, defaultMinimumLogLevel, defaultLoggerSource).CreateLogger())
                .Register(() => GetLoggerFactory(dependencyResolver, defaultMinimumLogLevel, defaultLoggerSource).CreateAsynchronousLogger());
        }
        public Task Log(LogLevelEnum level, string message, Exception exception)
        {
            if (level < _minimumLogLevel) return Task.FromResult(0);

            Dictionary<string, string> properties = new Dictionary<string, string>
            {
                {"component", _fullyQualifiedName.ToString()},
                {"level", level.ToString()},
                {"message", message}
            };

            if (exception != null)
            {
                _telemetryClient.TrackException(exception, properties);
            }
            _telemetryClient.TrackEvent($"LOG:{level}", properties);
            return Task.FromResult(0);
        }
        public QueueLoggerFactory(
            IRuntimeEnvironment runtimeEnvironment,
            IApplicationResourceSettingNameProvider nameProvider,
            IConfiguration configuration,
            IQueueSerializer queueSerializer,
            IQueueLoggerExtension queueLoggerExtension,
            ICorrelationIdProvider correlationIdProvider,
            LogLevelEnum defaultMinimumLogLevel,
            IFullyQualifiedName defaultLoggerSource)
        {
            _runtimeEnvironment = runtimeEnvironment;
            _queueSerializer = queueSerializer;
            _queueLoggerExtension = queueLoggerExtension;
            _correlationIdProvider = correlationIdProvider;
            _defaultMinimumLogLevel = defaultMinimumLogLevel;
            _defaultLoggerSource = defaultLoggerSource;

            _queueName = configuration[nameProvider.SettingName(ApplicationSupportComponentIdentity, "logger-queue")];
            _storageAccountConnectionString = configuration[nameProvider.StorageAccountConnectionString(ApplicationSupportComponentIdentity)];
        }
Example #21
0
 private LogLevel ToLogLevel( LogLevelEnum ll )
 {
     switch( ll ) {
     case LogLevelEnum.Debug: 
         return LogLevel.Debug;
     case LogLevelEnum.Error: 
         return LogLevel.Error;
     case LogLevelEnum.Fatal: 
         return LogLevel.Fatal;
     case LogLevelEnum.Info: 
         return LogLevel.Info;
     case LogLevelEnum.Off: 
         return LogLevel.Off;
     case LogLevelEnum.Trace: 
         return LogLevel.Trace;
     case LogLevelEnum.Warn: 
         return LogLevel.Warn;
     default:
         return LogLevel.Off;
     }
 }
Example #22
0
        public static void LogMessage(Type type, LogLevelEnum logLevel, string message, Exception ex)
        {
            Log = LogManager.GetLogger(type);
            switch(logLevel)
            {
                case LogLevelEnum.Debug:
#if DEBUG
                    Log.Debug(message, ex);
#endif
                    break;
                case LogLevelEnum.Error:
                    Log.Error(message, ex);
                    break;
                case LogLevelEnum.Fatal:
                    Log.Fatal(message, ex);
                    break;
                case LogLevelEnum.Info:
                    Log.Info(message, ex);
                    break;
                case LogLevelEnum.Warn:
                    Log.Warn(message, ex);
                    break;
            }
        }
Example #23
0
        public static void ShowMsgInInfoWindow(TextBox showWin, LogLevelEnum nMsgType, System.String strMsg)
        {
            System.String strOldTest = System.String.Empty;

            System.String strShowInfo = System.String.Empty;
            //System.DateTime nTimeNow = System.DateTime.Now;
            System.String strMsgType = System.String.Empty;

            strOldTest = showWin.Text;

            switch (nMsgType)
            {
                case LogLevelEnum.LOG_WARN:
                    strMsgType = " WARN: ";
                    break;
                case LogLevelEnum.LOG_INFO:
                    strMsgType = " INFO: ";
                    break;
                case LogLevelEnum.LOG_ERROR:
                    strMsgType = " ERROR: ";
                    break;
                default:
                    strMsgType = " INFO: ";
                    break;
            }//switch

            strShowInfo = strOldTest;
            //add Msg to tail
            //Millisecond
            strShowInfo += System.DateTime.Now.ToString("\n yyyy-MM-dd HH:mm:ss.fff -- ");
            //strShowInfo = System.DateTime.Now.Millisecond.ToString();
            strShowInfo += strMsgType;
            strShowInfo += strMsg;

            showWin.Text = strShowInfo;
        }
Example #24
0
 public void Log(LogLevelEnum level, string message)
 {
     Log(new LogEntity(message, level));
 }
Example #25
0
 internal override IEnumerable <ConfigurationPoint> GetConfigPoints(LogLevelEnum logLevel)
 {
     return(LogLevelXPaths.Select(item => CreateConfigurationPoint(item, logLevel)));
 }
Example #26
0
 public DislyEventArgs(LogLevelEnum eventLevel, String message, Exception exception = null)
 {
     EventLevel = eventLevel;
     Message    = message;
     Exception  = exception;
 }
Example #27
0
 public LogMessage(LogLevelEnum logLevel, Dictionary <string, string> messages)
     : base(Methods.LOG_MESSAGE)
 {
     this.logLevel = logLevel;
     this.messages = messages;
 }
Example #28
0
        protected static void Log(LogLevelEnum logLevel, string message, FileLoggerConfiguration configuration)
        {
            FileLogger fileLogger = FileLogger.Instance(configuration);

            fileLogger.WriteLog(logLevel, message);
        }
Example #29
0
 public static ILogLevel ToLogLevel(this LogLevelEnum logLevelEnum)
 {
     return(new LogLevel(logLevelEnum));
 }
 public override void doLogMessages(LogLevelEnum loglevel, Dictionary <string, string> messages)
 {
     //TODO: implement
 }
 public ILogger CreateLogger(IFullyQualifiedName source, LogLevelEnum? minimumLogLevel = null)
 {
     return new TraceLogger(source ?? _defaultLoggerSource, minimumLogLevel.GetValueOrDefault(_defaultMinimumLogLevel));
 }
Example #32
0
 public LogLevel(LogLevelEnum logLevel) : this(logLevel.ToString(), (int)logLevel)
 {
 }
Example #33
0
 public static void WriteLine(string text = "", LogLevelEnum level = LogLevelEnum.DEBUG, string additionalDestinationFile = null)
 {
     Write(text + "\n", level, additionalDestinationFile);
 }
Example #34
0
 /// <summary>
 /// Creates an instance of the Serilog configuration.
 /// </summary>
 /// <param name="loglevel">Defaults to Information</param>
 public SerilogConfig(LogLevelEnum loglevel = LogLevelEnum.INFO)
 {
     LogLevel = loglevel;
 }
 public IAsynchronousLogger CreateAsynchronousLogger(IFullyQualifiedName source, LogLevelEnum? minimumLogLevel)
 {
     return new ConsoleAsynchronousLogger(source ?? _defaultLoggerSource, minimumLogLevel.GetValueOrDefault(_defaultMinimumLoggingLevel));
 }
Example #36
0
        /// <summary>
        /// 判断是否需要写入日志
        /// </summary>
        /// <param name="level">级别</param>
        /// <param name="recordLogLevel">记录日志级别</param>
        /// <returns>是否需要写入日志</returns>
        public static bool IsNeedWriteLog(string level, string recordLogLevel)
        {
            LogLevelEnum levelEnum = Parse(level);

            return(levelEnum >= Parse(recordLogLevel));
        }
Example #37
0
 public virtual void Log(string message, LogLevelEnum logLevel = LogLevelEnum.Info, object parameters = null)
 {
     new LogService().Log(message, logLevel, parameters);
 }
Example #38
0
        protected static List <LogRecord> Parse(LogLevelEnum logLevel, FileLoggerConfiguration configuration)
        {
            FileLogger fileLogger = FileLogger.Instance(configuration);

            return(fileLogger.Parse(logLevel));
        }
Example #39
0
 public static void Log(LogLevelEnum logLevel, string message)
 {
     Log(logLevel, message, Settings.Instance.LoggerConfiguration);
 }
 public IAsynchronousLogger CreateAsynchronousLogger(LogLevelEnum? minimumLogLevel)
 {
     return new TraceAsynchronousLogger(null, minimumLogLevel.GetValueOrDefault(_defaultMinimumLogLevel));
 }
 public IAsynchronousLogger CreateAsynchronousLogger(LogLevelEnum? minimumLogLevel)
 {
     return new ConsoleAsynchronousLogger(_defaultLoggerSource, minimumLogLevel.GetValueOrDefault(_defaultMinimumLoggingLevel));
 }
Example #42
0
 public static void SetLogLevel(LogLevelEnum logLevel)
 {
     LogLevel = logLevel;
 }
 public ConsoleLogger(IFullyQualifiedName source, LogLevelEnum minimumLogLevel)
 {
     _source = source;
     _minimumLogLevel = minimumLogLevel;
 }
 public abstract void doLogMessages(LogLevelEnum logLevel, Dictionary <string, string> messages);
 public override void doLogMessages(LogLevelEnum logLevel, Dictionary <string, string> messages)
 {
     sendObjectMessage(new LogMessage(logLevel, messages));
 }
Example #46
0
 public void Log(string info, LogLevelEnum LogLevel = LogLevelEnum.Info)
 {
     OnOnLog(info, LogLevel);
 }
 public ILogger CreateLogger(LogLevelEnum? minimumLogLevel = null)
 {
     return new TraceLogger(_defaultLoggerSource, minimumLogLevel.GetValueOrDefault(_defaultMinimumLogLevel));
 }
Example #48
0
        //************************************************************************
        /// <summary>
        /// Data Class内容LOG输出
        /// <param name="argLoglevel">LOG级别</param>
        /// <param name="argFqcn">Class名</param>
        /// <param name="argMethodName">method名</param>
        /// <param name="argDataName">Data名</param>
        /// <param name="argDataObject">dataobject</param>
        /// <param name="argUserID">用户名</param>
        /// <param name="argIpAddress">IPAddress</param>
        /// </summary>
        //************************************************************************
        private void WriteDataLog(LogLevelEnum argLoglevel, string argFqcn, string argMethodName, string argDataName, object argDataObject)
        {
            string strMessage = "";

            // Data Object为null时、NULL输出返回
            if (argDataObject == null)
            {
                strMessage = argDataName + "\t" + "NULL";
                WriteLogFile(argLoglevel, argFqcn, argMethodName, strMessage, null);
                return;
            }

            #region 反射写出数据
            // object的类型取得
            Type classType = argDataObject.GetType();

            // 基本型时
            if (isBaseType(classType))
            {
                // 基本型时
                strMessage  = argDataName + "\t" + "[" + classType.Name + "]";
                strMessage += "\t" + "[" + argDataObject.ToString() + "]";

                WriteLogFile(argLoglevel, argFqcn, argMethodName, strMessage, null);
                return;
            }

            // Array时
            if (classType.IsArray)
            {
                long[] indexArray = null;;

                int intArrayLength = ((Array)argDataObject).Length;
                for (int index = 0; index < intArrayLength; index++)
                {
                    indexArray = getArrayMember((Array)argDataObject, index);
                    object arrayObj = ((Array)argDataObject).GetValue(indexArray);

                    // Array的名称取得
                    string objName = argDataName + "[" + indexArray[0].ToString();
                    for (int i = 1; i < indexArray.Length; i++)
                    {
                        objName += "," + indexArray[i].ToString();
                    }
                    objName += "]";

                    // Array的名称为NUll时
                    if (arrayObj == null)
                    {
                        strMessage  = objName + "\t" + "[" + argDataObject.GetType().GetElementType().Name + "]";
                        strMessage += "\t" + "NULL";
                        WriteLogFile(argLoglevel, argFqcn, argMethodName, strMessage, null);
                    }
                    else
                    {
                        WriteDataLog(argLoglevel, argFqcn, argMethodName, objName, arrayObj);
                    }
                }
                return;
            }

            string strSpace = "";
            for (int temp = 0; temp < argDataName.Length; temp++)
            {
                if (argDataName.Substring(temp, 1) == " ")
                {
                    strSpace += " ";
                }
                else if (argDataName.Substring(temp, 1) == " ")
                {
                    strSpace += " ";
                }
                else
                {
                    break;
                }
            }
            strSpace += "   ";

            // Hashtable 时
            if (classType.Name == "Hashtable")
            {
                Hashtable ht = (Hashtable)argDataObject;
                System.Collections.IEnumerator keyEnum = ht.Keys.GetEnumerator();
                int count = ht.Count;
                keyEnum.Reset();
                strMessage = argDataName + "----------------------";
                WriteLogFile(argLoglevel, argFqcn, argMethodName, strMessage, null);

                for (int i = 0; i < count; i++)
                {
                    keyEnum.MoveNext();
                    object hashKey   = keyEnum.Current; // Key
                    object hashValue = ht[hashKey];     // Value
                    WriteDataLog(argLoglevel, argFqcn, argMethodName, strSpace + hashKey.ToString(), hashValue);
                }
                return;
            }

            // ArrayList时
            if (classType.Name == "ArrayList")
            {
                ArrayList at    = (ArrayList)argDataObject;
                int       count = at.Count;
                strMessage = argDataName + "----------------------";
                WriteLogFile(argLoglevel, argFqcn, argMethodName, strMessage, null);

                for (int i = 0; i < count; i++)
                {
                    WriteDataLog(argLoglevel, argFqcn, argMethodName, strSpace + "[" + i.ToString() + "]", at[i].ToString());
                }
                return;
            }

            // DataSet时
            if (classType.Name == "DataSet" || classType.BaseType.Name == "DataSet")
            {
                strMessage = argDataName + "----------------------";
                WriteLogFile(argLoglevel, argFqcn, argMethodName, strMessage, null);

                foreach (DataTable myDataTable in ((DataSet)argDataObject).Tables)
                {
                    strMessage = strSpace + "Table名:" + "\t" + "[" + myDataTable.TableName + "]";
                    WriteLogFile(argLoglevel, argFqcn, argMethodName, strMessage, null);

                    int intCurrentRow = 0;
                    foreach (DataRow myRow in myDataTable.Rows)
                    {
                        foreach (DataColumn myColumn in myDataTable.Columns)
                        {
                            WriteDataLog(argLoglevel, argFqcn, argMethodName, strSpace + myColumn.ColumnName + "[" + intCurrentRow.ToString() + "]", myRow[myColumn]);
                        }
                        intCurrentRow++;
                    }
                }
                return;
            }

            // DataTable时
            if (classType.Name == "DataTable" || classType.BaseType.Name == "DataTable")
            {
                strMessage = argDataName + "----------------------";
                WriteLogFile(argLoglevel, argFqcn, argMethodName, strMessage, null);

                DataTable myDataTable = (DataTable)argDataObject;

                strMessage = strSpace + "Table名:" + "\t" + "[" + myDataTable.TableName + "]";
                WriteLogFile(argLoglevel, argFqcn, argMethodName, strMessage, null);

                int intCurrentRow = 0;
                foreach (DataRow myRow in myDataTable.Rows)
                {
                    foreach (DataColumn myColumn in myDataTable.Columns)
                    {
                        WriteDataLog(argLoglevel, argFqcn, argMethodName, strSpace + myColumn.ColumnName + "[" + intCurrentRow.ToString() + "]", myRow[myColumn]);
                    }
                    intCurrentRow++;
                }
                return;
            }

            // 基本型、array、Hashtable以外时
            strMessage = argDataName + "----------------------";
            WriteLogFile(argLoglevel, argFqcn, argMethodName, strMessage, null);

            System.Reflection.PropertyInfo[]    pi             = classType.GetProperties();
            System.Reflection.MemberInfo[]      classMembInfo  = classType.GetMembers();
            System.Reflection.FieldInfo[]       classFieldInfo = classType.GetFields();
            System.Reflection.ConstructorInfo[] classConstInfo = classType.GetConstructors();
            // 各属性输出
            foreach (System.Reflection.PropertyInfo tpi in pi)
            {
                if (tpi.GetValue(argDataObject, null) == null)
                {
                    strMessage  = strSpace + tpi.Name + "\t" + "[" + tpi.PropertyType.Name + "]";
                    strMessage += "\t" + "NULL";
                    WriteLogFile(argLoglevel, argFqcn, argMethodName, strMessage, null);
                }
                else
                {
                    WriteDataLog(argLoglevel, argFqcn, argMethodName, strSpace + tpi.Name, tpi.GetValue(argDataObject, null));
                }
            }
            #endregion
        }
 public TraceLoggerFactory(LogLevelEnum defaultMinimumLogLevel, IFullyQualifiedName defaultLoggerSource)
 {
     _defaultMinimumLogLevel = defaultMinimumLogLevel;
     _defaultLoggerSource = defaultLoggerSource;
 }
Example #50
0
 public void Log(LogLevelEnum level, Exception ex, string message, params object[] args)
 {
     Log(level, Utils.Format(Utils.Format("{0}{1}{2}", Utils.Format(ex), Environment.NewLine, message), args));
 }