コード例 #1
0
 /// <summary>
 /// Initialization.
 /// </summary>
 /// <param name="savePath">Save path of log file.</param>
 /// <param name="rollSizeKB">Log file max size, when it happend, auto create new one.</param>
 /// <param name="logFormatType">File Format.</param>
 public static void Init(string savePath, int rollSizeKB = 10000, LogFormatType logFormatType = LogFormatType.Default)
 {
     LogCustomWriter.SavePath   = savePath;
     LogCustomWriter.RollSizeKB = rollSizeKB;
     _logformatType             = logFormatType;
     CheckInParam();
 }
コード例 #2
0
            public WrapperTextWriter(TextWriter innerWriter, string defaultLogLevel)
            {
                _innerWriter     = innerWriter;
                _defaultLogLevel = defaultLogLevel;

                var envLogLevel = Environment.GetEnvironmentVariable(LOG_LEVEL_ENVIRONMENT_VARAIBLE);

                if (!string.IsNullOrEmpty(envLogLevel))
                {
                    if (Enum.TryParse <LogLevel>(envLogLevel, true, out var result))
                    {
                        _minmumLogLevel = result;
                    }
                }

                var envLogFormat = Environment.GetEnvironmentVariable(LOG_FORMAT_ENVIRONMENT_VARAIBLE);

                if (!string.IsNullOrEmpty(envLogFormat))
                {
                    if (Enum.TryParse <LogFormatType>(envLogFormat, true, out var result))
                    {
                        _logFormatType = result;
                    }
                }
            }
コード例 #3
0
ファイル: LogTemplate.cs プロジェクト: radtek/SmallShop
        internal static ILogFormatter GetDebugTraceFormatter(LogFormatType logFormatType)
        {
            var template = MsgDebugTraceTemplate;

            if (logFormatType == LogFormatType.Details)
            {
                template = MsgDebugTraceTemplate2;
            }
            else if (logFormatType == LogFormatType.Release)
            {
                template = MsgDebugTraceTemplate3;
            }
            return(new TextFormatter(template));
        }
コード例 #4
0
ファイル: LogTemplate.cs プロジェクト: radtek/SmallShop
        internal static ILogFormatter GetRollingFlatFileFormatter(LogFormatType logFormatType)
        {
            var template = MsgRollingFlatFileTemplate;

            if (logFormatType == LogFormatType.Details)
            {
                template = MsgRollingFlatFileTemplate2;
            }
            else if (logFormatType == LogFormatType.Release)
            {
                template = MsgRollingFlatFileTemplate3;
            }
            return(new TextFormatter(template));
        }
コード例 #5
0
ファイル: LogTemplate.cs プロジェクト: radtek/SmallShop
        internal static string GetSeverity(TraceEventType severity, LogFormatType logFormatType)
        {
            switch (severity)
            {
            case TraceEventType.Critical:
                return(logFormatType == LogFormatType.Default ? "C" : "Critical");

            case TraceEventType.Error:
                return(logFormatType == LogFormatType.Default ? "E" : "Error");

            case TraceEventType.Information:
                return(logFormatType == LogFormatType.Default ? "I" : "Info");

            case TraceEventType.Warning:
                return(logFormatType == LogFormatType.Default ? "W" : "Warn");

            case TraceEventType.Verbose:
                return("V");

            default:
                throw new ArgumentOutOfRangeException("severity");
            }
        }
コード例 #6
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="fileName"></param>
        /// <param name="logFormatType"></param>
        public void AddLogSource(string fileName, LogFormatType logFormatType)
        {
            if (string.IsNullOrEmpty(fileName))
            {
                throw new ArgumentNullException("fileName", "Log FileName is Null");
            }

            if (!_traceSources.ContainsKey(fileName))
            {
                lock (_safeObj)
                {
                    if (!_traceSources.ContainsKey(fileName))
                    {
                        var logRollingListener = new LogRollingFlatFileListener(Path.Combine(SavePath, fileName + ".Log"), LogTemplate.GetRollingFlatFileFormatter(logFormatType), RollSizeKB).CreateListener(_loggerType);
                        var debugTraceListener = new DebugTraceListener(LogTemplate.GetDebugTraceFormatter(logFormatType)).CreateListener(_loggerType);
                        var mainLogSource      = new LogSource("MainLogSource", SourceLevels.All);
                        mainLogSource.Listeners.Clear();
                        mainLogSource.Listeners.Add(logRollingListener);
                        mainLogSource.Listeners.Add(debugTraceListener);
                        _traceSources.Add(fileName, mainLogSource);
                    }
                }
            }
        }
コード例 #7
0
        /// <summary>
        /// 获取指定日志的具有指定格式的数据。
        /// </summary>
        /// <param name="log">日志对象。</param>
        /// <param name="logFormat">日志格式。</param>
        /// <returns></returns>
        private string Log2String(LogEntity log, LogFormatType logFormat)
        {
            System.Text.StringBuilder sb = new System.Text.StringBuilder();
            if (logFormat == LogFormatType.Text)
            {
                sb.AppendLine("[" + log.DateTime.ToString("yyyy-MM-dd HH:mm:ss") + "] ");
                //switch (log.Level)
                //{
                //    case LogLevelType.Debug:
                //        sb.Append("调试信息");
                //        break;
                //    case LogLevelType.Info:
                //        sb.Append("信息");
                //        break;
                //    case LogLevelType.Warning:
                //        sb.Append("警告");
                //        break;
                //    case LogLevelType.Error:
                //        sb.Append("错误");
                //        break;
                //    case LogLevelType.Fatal:
                //        sb.Append("致命错误");
                //        break;
                //}
                sb.AppendLine("Level:" + log.Level.ToString());
                if (log.EventID != 0)
                {
                    sb.AppendLine("EventID:" + log.EventID.ToString());
                }
                if (!string.IsNullOrEmpty(log.EventSourceName))
                {
                    sb.AppendLine("EventSourceName:" + log.EventSourceName);
                }
                if (!string.IsNullOrEmpty(log.TaskCategory))
                {
                    sb.AppendLine("TaskCategory:" + log.TaskCategory);
                }
                if (!string.IsNullOrEmpty(log.UserID))
                {
                    sb.AppendLine("UserID:" + log.UserID);
                }
                sb.AppendLine(log.Message);

                sb.AppendLine();
            }
            else if (logFormat == LogFormatType.XML)
            {
                sb.Append("<Log>");
                sb.Append("<DateTime>" + log.DateTime.ToString("yyyy-MM-dd HH:mm:ss") + "</DateTime>");
                //switch (log.Level)
                //{
                //    case LogLevelType.Debug:
                //        sb.Append(Log.GetXMLElementString("Level", "调试信息"));
                //        break;
                //    case LogLevelType.Info:
                //        sb.Append(Log.GetXMLElementString("Level", "信息"));
                //        break;
                //    case LogLevelType.Warning:
                //        sb.Append(Log.GetXMLElementString("Level", "警告"));
                //        break;
                //    case LogLevelType.Error:
                //        sb.Append(Log.GetXMLElementString("Level", "错误"));
                //        break;
                //    case LogLevelType.Fatal:
                //        sb.Append(Log.GetXMLElementString("Level", "致命错误"));
                //        break;
                //}

                sb.Append(Log.GetXMLElementString("Level", log.Level.ToString()));

                if (log.EventID != 0)
                {
                    sb.Append("<EventID>" + log.EventID.ToString() + "</EventID>");
                }
                if (!string.IsNullOrEmpty(log.EventSourceName))
                {
                    sb.Append(Log.GetXMLElementString("EventSourceName", log.EventSourceName));
                }
                if (!string.IsNullOrEmpty(log.TaskCategory))
                {
                    sb.Append(Log.GetXMLElementString("TaskCategory", log.TaskCategory));
                }
                if (!string.IsNullOrEmpty(log.UserID))
                {
                    sb.Append(Log.GetXMLElementString("UserID", log.UserID));
                }
                sb.Append(Log.GetXMLElementString("Message", log.Message));
                sb.Append(@"</Log>
");
            }
            return(sb.ToString());
        }