Пример #1
0
        public ILogger Info(LoggerInfo info, string message, params object[] args)
        {
            if (Config.Enabled && Config.EnabledInfo)
                Write(info, LogType.Info, message, args);

            return this;
        }
Пример #2
0
 public void WriteLog_Waring <T>(string Message, string timespan, string username, string clientguid, string clientname, Exception ex) where T : class
 {
     try
     {
         LoggerInfo info = new LoggerInfo();
         info.TimeSpan   = timespan;
         info.UserName   = username;
         info.Message    = Message;
         info.ClientGuid = clientguid;
         info.ClientName = clientname;
         _log            = log4net.LogManager.GetLogger(typeof(T).Name.ToString());
         _log.Warn(info, ex);
     }
     catch (Exception exe)
     {
         LoggerInfo info = new LoggerInfo();
         info.TimeSpan   = timespan;
         info.UserName   = username;
         info.Message    = Message;
         info.ClientGuid = clientguid;
         info.ClientName = clientname;
         _log            = log4net.LogManager.GetLogger(typeof(T).Name.ToString());
         _log.Error(info, exe);
     }
 }
Пример #3
0
        public ILogger Exception(LoggerInfo info, string message, params object[] args)
        {
            if (Config.Enabled && Config.EnabledException)
                Write(info, LogType.Exception, message, args);

            return this;
        }
        internal async void OnUpdate()
        {
            while (!Server.Instance.IsShutdown())
            {
                ClockConstantController.Start("gui_outputUpdate");
                ConcurrentQueue <LoggerInfo> queue = Server.Instance.Logger.GuiLoggerTexts;
                if (queue.Count == 0)
                {
                    await Task.Delay(1000 / 200);

                    continue;
                }
                else
                {
                    LoggerInfo info = null;
                    queue.TryDequeue(out info);
                    if (this.CheckShowOutput(info.Level))
                    {
                        if (!string.IsNullOrEmpty(info.Text))
                        {
                            textBox1.AppendText(info.Text + Environment.NewLine);
                        }
                    }
                }
                await ClockConstantController.Stop("gui_outputUpdate");
            }
        }
Пример #5
0
        protected XDebugLogger _CreateLogger(LoggerInfo info)
        {
            var newInst = new XDebugLogger();

            newInst.mute   = !info.active;
            newInst.prefix = info.name;
            newInst.color  = _ColorToHex(info.color);
            return(newInst);
        }
Пример #6
0
 protected override void Write(LoggerInfo info, LogType type, string message, params object[] args)
 {
     Task.Factory.StartNew(() =>
     {
         lock (LockObject)
         {
             using (StreamWriter write = File.AppendText(FileName))
             {
                 write.WriteLine(Formatter.Format(info, type, message, args));
             }
         }
     });
 }
Пример #7
0
        private LoggerInfo ReadLastLines(FileTarget fileTarget)
        {
            var logEventInfo = new LogEventInfo {
                TimeStamp = DateTime.Now
            };
            string fileName = fileTarget.FileName.Render(logEventInfo);

            if (!File.Exists(fileName))
            {
                throw new Exception("Log file does not exist.");
            }

            string resultString = "";
            int    cntr         = 1;

            using (var fs = File.OpenRead(fileName))
            {
                while (resultString.Count(el => el == '\n') < mSettings.MetricsConfig.CountOfLogLines)
                {
                    var offset = 1024 * cntr < fs.Length ? 1024 * cntr : fs.Length;
                    var length = 1024 * cntr < fs.Length ? 1024 : fs.Length - 1024 * (cntr - 1);
                    fs.Seek(-offset, SeekOrigin.End);
                    var buf = new byte[length];
                    fs.Read(buf, 0, (int)length);
                    resultString = Encoding.UTF8.GetString(buf) + resultString;
                    cntr++;

                    if (offset == fs.Length)
                    {
                        break;
                    }
                }
            }

            var result = new LoggerInfo
            {
                Name     = fileTarget.Name,
                FilePath = fileName,
                LastLogs =
                    resultString.Substring(resultString.IndexOf('\n') + 1)
                    .Replace("\r", "")
                    .Split('\n')
                    .Where(el => !string.IsNullOrEmpty(el))
                    .ToList()
            };

            return(result);
        }
        public string Format(LoggerInfo info, LogType type, string message, params object[] args)
        {
            StringBuilder result = new StringBuilder();

            string messageComplete = string.Format(message, args);
            result.AppendLine(string.Format("{0} {1}: \t {2}", DateTime.Now, type, messageComplete));

            if (info != null)
            {
                result.AppendLine(string.Format("\tFile:\t{0}", info.FileName));
                result.AppendLine(string.Format("\tMethod:\t{0}", info.MemberName));
                result.AppendLine(string.Format("\tLine:\t{0}", info.LineNumber));
            }

            return result.ToString();
        }
Пример #9
0
        private LoggerInfo ParseLoggerLine(string line)
        {
            string[] args = line.Split(' ');
            if (args.Length == 4)
            {
                string[] path = args[3].Split('.');
                if (path.Length < 2)
                {
                    return(null);
                }
                string nameAndIndex = path.Last();
                string sequence     = path[path.Length - 2];
                string packageName  = args[1].Trim('(', ')');
                if (Pcc == null || PccFileName.Equals(packageName, StringComparison.InvariantCultureIgnoreCase))
                {
                    if (int.TryParse(nameAndIndex.Substring(nameAndIndex.LastIndexOf('_') + 1), out int nameIndex))
                    {
                        var newInfo = new LoggerInfo
                        {
                            fullLine     = line,
                            packageName  = packageName,
                            className    = args[2],
                            objectName   = new NameReference(nameAndIndex.Substring(0, nameAndIndex.LastIndexOf('_')), nameIndex),
                            sequenceName = sequence,
                        };

                        if (Pcc != null && SequenceToFilterTo != null)
                        {
                            // This is wildly inefficient
                            var referencedEntry = Pcc.Exports.FirstOrDefault(exp => exp.ClassName == newInfo.className && exp.ObjectName == newInfo.objectName && exp.ParentName == sequence);
                            if (referencedEntry != null && referencedEntry.Parent.InstancedFullPath == SequenceToFilterTo.InstancedFullPath)
                            {
                                return(newInfo);
                            }
                            return(null);
                        }

                        return(newInfo);
                    }
                }
            }

            return(null);
        }
Пример #10
0
        private LoggerInfo ParseLoggerLine(string line)
        {
            string[] args = line.Split(' ');
            if (args.Length == 4)
            {
                string[] path = args[3].Split('.');
                if (path.Length < 2)
                {
                    return(null);
                }
                string nameAndIndex = path.Last();
                string sequence     = path[path.Length - 2];
                string packageName  = args[1].Trim('(', ')').ToLower();
                if (Pcc == null || Path.GetFileNameWithoutExtension(Pcc.FilePath).ToLower() == packageName)
                {
                    if (int.TryParse(nameAndIndex.Substring(nameAndIndex.LastIndexOf('_') + 1), out int nameIndex))
                    {
                        var newInfo = new LoggerInfo
                        {
                            fullLine     = line,
                            packageName  = packageName,
                            className    = args[2],
                            objectName   = new NameReference(nameAndIndex.Substring(0, nameAndIndex.LastIndexOf('_')), nameIndex),
                            sequenceName = sequence,
                        };

                        if (Pcc != null && SequenceToFilterTo != null)
                        {
                            var referencedEntry = Pcc.Exports.FirstOrDefault(exp => exp.ClassName == newInfo.className && exp.ObjectName == newInfo.objectName && exp.ParentName == sequence);
                            if (referencedEntry != null && referencedEntry.Parent.InstancedFullPath == SequenceToFilterTo.InstancedFullPath)
                            {
                                return(newInfo);
                            }
                            return(null);
                        }

                        return(newInfo);
                    }
                }
            }

            return(null);
        }
Пример #11
0
 private static string CreateLoggerString(LoggerInfo loggerInfo)
 {
     return(CreateLoggerString(loggerInfo.Name, loggerInfo.Level.ToUpper(), loggerInfo.Appender, loggerInfo.Dir));
 }
Пример #12
0
 protected override void Write(LoggerInfo info, LogType type, string message, params object[] args)
 {
 }
Пример #13
0
 protected abstract void Write(LoggerInfo info, LogType type, string message, params object[] args);
Пример #14
0
        public ILogger Log(LoggerInfo info, LogType type, string message, params object[] args)
        {
            if (Config.Enabled)
                Write(info, type, message, args);

            return this;
        }
Пример #15
0
 protected override void Write(LoggerInfo info, LogType type, string message, params object[] args)
 {
     Console.WriteLine(Formatter.Format(info, type, message, args));
 }