Esempio n. 1
0
        /// <summary>
        /// Adds a log item to the log immidiately instead of Queuing it as a work item.
        /// </summary>
        /// <param name="type">The type.</param>
        /// <param name="userId">The user id.</param>
        /// <param name="nodeId">The node id.</param>
        /// <param name="comment">The comment.</param>
        public static void AddSynced(LogTypes type, int userId, int nodeId, string comment)
        {
            var logTypeIsAuditType = type.GetType().GetField(type.ToString()).GetCustomAttributes(typeof(AuditTrailLogItem), true).Length != 0;

            if (logTypeIsAuditType)
            {
                try
                {
                    SqlHelper.ExecuteNonQuery(
                        "insert into umbracoLog (userId, nodeId, logHeader, logComment) values (@userId, @nodeId, @logHeader, @comment)",
                        SqlHelper.CreateParameter("@userId", userId),
                        SqlHelper.CreateParameter("@nodeId", nodeId),
                        SqlHelper.CreateParameter("@logHeader", type.ToString()),
                        SqlHelper.CreateParameter("@comment", comment));
                }
                catch (Exception e)
                {
                    LogHelper.Error <Log>("An error occurred adding an audit trail log to the umbracoLog table", e);
                }

                //Because 'Custom' log types are also Audit trail (for some wacky reason) but we also want these logged normally so we have to check for this:
                if (type != LogTypes.Custom)
                {
                    return;
                }
            }

            //if we've made it this far it means that the log type is not an audit trail log or is a custom log.
            LogHelper.Info <Log>(
                "Redirected log call (please use Umbraco.Core.Logging.LogHelper instead of umbraco.BusinessLogic.Log) | Type: {0} | User: {1} | NodeId: {2} | Comment: {3}",
                () => type.ToString(), () => userId, () => nodeId.ToString(CultureInfo.InvariantCulture), () => comment);
        }
Esempio n. 2
0
 public void Publisher()
 {
     try
     {
         var logNames = Enum.GetValues(typeof(LogTypes));
         var factory  = new ConnectionFactory();
         factory.HostName = "localhost";
         using (var connection = factory.CreateConnection())
         {
             using (var channel = connection.CreateModel())
             {
                 channel.ExchangeDeclare(exchange: "system-logs", durable: true, type: ExchangeType.Direct);
                 var propertis = channel.CreateBasicProperties();
                 propertis.Persistent = true;
                 for (int i = 0; i < 11; i++)
                 {
                     Random   random  = new Random();
                     LogTypes logType = (LogTypes)logNames.GetValue(random.Next(logNames.Length));
                     var      body    = Encoding.UTF8.GetBytes($"log={logType.ToString()}");
                     channel.BasicPublish("system-logs", routingKey: logType.ToString(), propertis, body: body);
                 }
                 Console.WriteLine("Mesaj Direct Exchange'e gönderilmiştir");
                 Console.ReadLine();
             }
         }
     }
     catch (Exception exception)
     {
         throw new Exception(exception.Message);
     }
 }
Esempio n. 3
0
        private void AppendLog(LogTypes logType, string section, string method, string text)
        {
            lock (_lock)
            {
                string fullName = "";
                string prefix   = $"{DateTime.Now:dd.MM.yyyy HH:mm:ss} {logType.ToString().PadRight(5)} [{section}]";
                string logStr   = $"{prefix} [{method}] {text}\r\n";
                try
                {
                    string path = string.IsNullOrWhiteSpace(LogfilePath) ? Helper.GetExePath() : LogfilePath;
                    fullName = Path.Combine(path, Constants.DEBUG_LOG);
                    File.AppendAllText(fullName, logStr);
                }
                catch
                {
                    // try to log in program directory

                    /*
                     * string newName = Path.Combine(Helper.GetExePath(), Constants.DEBUG_LOG);
                     * File.AppendAllText(newName, $"{prefix} [AppendLog] Error writing logfile to {fullName}\r\n");
                     * File.AppendAllText(newName, logStr);
                     */
                }
            }
        }
Esempio n. 4
0
        public static void Log(string s, string objectName, LogTypes severity = LogTypes.Debug)
        {
            if (!_LogEnabled)
            {
                return;
            }
            if (severity < _LogThreshold)
            {
                return;
            }
            try
            {
                lock (_classLock)
                {
                    if (_Output == null)
                    {
                        _Output = new System.IO.StreamWriter(_LogFile, true, System.Text.UnicodeEncoding.Default);
                    }

                    _Output.WriteLine(System.DateTime.Now.ToShortDateString() + " " + System.DateTime.Now.ToString("hh:mm:ss.fff tt") +
                                      "[" + severity.ToString() + "]" + " [" + objectName + "] - " + s, new object[0]);

                    if (_Output != null)
                    {
                        _Output.Close();
                        _Output = null;
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message, new object[0]);
            }
        }
Esempio n. 5
0
        /// <summary>
        /// Adds the specified log item to the log.
        /// </summary>
        /// <param name="type">The log type.</param>
        /// <param name="user">The user adding the item.</param>
        /// <param name="nodeId">The affected node id.</param>
        /// <param name="comment">Comment.</param>
        public static void Add(LogTypes type, User user, int nodeId, string comment)
        {
            if (Instance.ExternalLogger != null)
            {
                Instance.ExternalLogger.Add(type, user, nodeId, comment);

                if (!UmbracoSettings.ExternalLoggerLogAuditTrail)
                {
                    AddLocally(type, user, nodeId, comment);
                }
            }
            else
            {
                if (!UmbracoSettings.EnableLogging) return;

                if (UmbracoSettings.DisabledLogTypes != null &&
                    UmbracoSettings.DisabledLogTypes.SelectSingleNode(String.Format("//logTypeAlias [. = '{0}']", type.ToString().ToLower())) == null)
                {
                    if (comment != null && comment.Length > 3999)
                        comment = comment.Substring(0, 3955) + "...";

                    if (UmbracoSettings.EnableAsyncLogging)
                    {
                        ThreadPool.QueueUserWorkItem(
                            delegate { AddSynced(type, user == null ? 0 : user.Id, nodeId, comment); });
                        return;
                    }

                    AddSynced(type, user == null ? 0 : user.Id, nodeId, comment);
                }
            }
        }
Esempio n. 6
0
 public static IRecordsReader GetLogReader(LogTypes Type, DateTime SinceDate)
 {
     return(SqlHelper.ExecuteReader(
                "select userId, NodeId, DateStamp, logHeader, logComment from umbracoLog where logHeader = @logHeader and DateStamp >= @dateStamp order by dateStamp desc",
                SqlHelper.CreateParameter("@logHeader", Type.ToString()),
                SqlHelper.CreateParameter("@dateStamp", SinceDate)));
 }
Esempio n. 7
0
        private static StreamWriter GetStreamWriter(LogTypes logType)
        {
            LogFilePoolItem item;
            DateTime        now = TimeUtil.NowDateTime();

            lock (mutex)
            {
                if (!LogType2FileDict.TryGetValue(logType, out item))
                {
                    item = new LogFilePoolItem();
                    LogType2FileDict.Add(logType, item);
                }
                if (now.Hour != item.OpenTimeOnHours || now.DayOfYear != item.OpenTimeOnDayOfYear || item._StreamWriter == null)
                {
                    if (null != item._StreamWriter)
                    {
                        item._StreamWriter.Close();
                        item._StreamWriter = null;
                    }
                    item._StreamWriter           = File.AppendText(LogPath + logType.ToString() + "_" + now.ToString("yyyyMMdd") + ".log");
                    item.OpenTimeOnHours         = now.Hour;
                    item.OpenTimeOnDayOfYear     = now.DayOfYear;
                    item._StreamWriter.AutoFlush = true;
                }
                return(item._StreamWriter);
            }
        }
Esempio n. 8
0
        public static void WriteLog(LogTypes type, string msg, params object[] pObjects)
        {
            FileWriter.Write(Constants.LogWriting, string.Format(msg + "\n", pObjects));
            string tab = "";
            for (int i = 1; i > (type.ToString().Length / 8); i--)
            {
                tab += "\t";
            }
            if (type == LogTypes.Debug)
            {
                Console.ForegroundColor = ConsoleColor.Green;
                Console.Write("    Debug" + tab + "| ");
            }
            else if (type == LogTypes.Info)
            {
                Console.ForegroundColor = ConsoleColor.Gray;
                Console.Write("    Info" + tab + "| ");
            }
            else if (type == LogTypes.LList)
            {
                Console.ForegroundColor = ConsoleColor.DarkMagenta;
                Console.Write("    Lobby" + tab + "| ");
            }
            else if (type == LogTypes.CDisp)
            {
                Console.ForegroundColor = ConsoleColor.DarkGray;
                Console.Write("    CDisp" + tab + "| ");
            }
            else if (type == LogTypes.HEmi)
            {
                Console.ForegroundColor = ConsoleColor.Magenta;
                Console.Write("    Hell" + tab + "| ");
            }
            else if (type == LogTypes.Warning)
            {
                Console.ForegroundColor = ConsoleColor.DarkYellow;
                Console.Write("    Warning" + tab + "| ");
            }
            else if (type == LogTypes.Error)
            {
                Console.ForegroundColor = ConsoleColor.Red;
                Console.Write("    Error" + tab + "| ");
            }
            else if (type == LogTypes.Connect)
            {
                Console.ForegroundColor = ConsoleColor.DarkGreen;
                Console.Write("    Connect" + tab + "| ");
            }
            else if (type == LogTypes.Disconnect)
            {
                Console.ForegroundColor = ConsoleColor.DarkRed;
                Console.Write("   Disconnect" + tab + "| ");
            }

            Console.ForegroundColor = ConsoleColor.White;
            Console.WriteLine(msg, pObjects);
            if (mCommandEnabled)
                Console.Write("> {0}", mCommandBuffer);
        }
Esempio n. 9
0
 internal static IRecordsReader GetLogReader(User user, LogTypes type, DateTime sinceDate, int numberOfResults)
 {
     return(SqlHelper.ExecuteReader(
                "select top " + numberOfResults + " userId, NodeId, DateStamp, logHeader, logComment from umbracoLog where UserId = @user and logHeader = @logHeader and DateStamp >= @dateStamp order by dateStamp desc",
                SqlHelper.CreateParameter("@logHeader", type.ToString()),
                SqlHelper.CreateParameter("@user", user.Id),
                SqlHelper.CreateParameter("@dateStamp", sinceDate)));
 }
Esempio n. 10
0
        public void LogWithCategory(LogTypes i_type, string i_message, string i_category)
        {
            string prefix = "(" + i_type.ToString() + ")";

            i_message = string.IsNullOrEmpty(i_category) ? prefix + i_message : prefix + i_category + ": " + i_message;

            UnityEngine.Debug.Log(i_message);
        }
Esempio n. 11
0
 public static IRecordsReader GetLogReader(User user, LogTypes Type, DateTime SinceDate)
 {
     using (var sqlHelper = Application.SqlHelper)
         return(sqlHelper.ExecuteReader(
                    "select userId, NodeId, DateStamp, logHeader, logComment from umbracoLog where UserId = @user and logHeader = @logHeader and DateStamp >= @dateStamp order by dateStamp desc",
                    sqlHelper.CreateParameter("@logHeader", Type.ToString()),
                    sqlHelper.CreateParameter("@user", user.Id),
                    sqlHelper.CreateParameter("@dateStamp", SinceDate)));
 }
Esempio n. 12
0
 private static void WriteToFile(LogTypes type, string log)
 {
     log = string.Format("{0}: {1}! {2}\n", DateTime.Now, type.ToString(), log);
     using (FileStream stream = new FileStream(logFileName, FileMode.Append, FileAccess.Write))
     {
         byte[] bytes = Encoding.Default.GetBytes(log);
         stream.Write(bytes, 0, bytes.Length);
         stream.Flush();
     }
 }
Esempio n. 13
0
 public static void WriteLog(LogTypes logType, string logMsg)
 {
     if (logType >= LogManager.LogTypeToWrite)
     {
         lock (LogManager.mutex)
         {
             LogManager.WriteLog(logType.ToString(), logMsg);
         }
     }
 }
Esempio n. 14
0
 public async Task LogAction(LogTypes logType, string message)
 {
     _context.Logging.Add(new Logging()
     {
         LoggingDate    = DateTime.Now,
         LoggingMessage = message,
         LoggingType    = logType.ToString()
     });
     await _context.SaveChangesAsync();
 }
Esempio n. 15
0
        private void WriteLog(LogTypes LogType, string FullPathSrc, string FullPathSrcNew, string FullPathDest, Exception ex)
        {
            string FullPath = Path.Combine(this._LogFolder, LogType.ToString() + DateTime.Now.ToString("yyyyMMdd") + ".log");
            string Log      = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
                              + "\t" + FullPathSrc
                              + (!string.IsNullOrEmpty(FullPathSrcNew) ? "(" + FullPathSrcNew + ")" : "")
                              + "\t" + FullPathDest
                              + "\t" + ((ex != null) ? CInfo.GetExceptionText(ex) : "");

            _Logging.WriteLog(FullPath, Log);
        }
Esempio n. 16
0
        public static void Log(LogTypes type, string log)
        {
            //prepare file name.
            var file = type.ToString() + ".log";

            //if dir not there, make it.
            Directory.CreateDirectory("Logs");

            //Append
            ThreadPool.QueueUserWorkItem(WriteToFile, new [] { "Logs/" + file, $"[{DateTime.Now:R}] " + log });
        }
Esempio n. 17
0
 public void RecordLog(LogTypes logTypes, params string[] messages)
 {
     _builder.Clear();
     _builder.AppendLine();
     _builder.AppendLine(logTypes.ToString());
     _builder.AppendLine(DateTime.Now.ToString());
     for (int i = 0; i < messages.Length; i++)
     {
         _builder.AppendLine(messages[i]);
     }
     File.AppendAllText(_fileProvider.ProvideFile(), _builder.ToString());
 }
Esempio n. 18
0
        /// <summary>
        /// 写入一行日志
        /// </summary>
        /// <param name="LogMessage">日志消息</param>
        /// <param name="LogType">日志类型</param>
        public static void WriteLog(string LogMessage, LogTypes LogType = LogTypes.INFO)
        {
            string Message = string.Format(
                @"\{0}/   <{1}>   {2}",
                DateTime.Now.ToString("yyyy/MM/dd-hh:mm:ss.fff"),
                LogType.ToString().PadRight(5),
                LogMessage
                );

            LogListener?.WriteLine(Message);
            System.Diagnostics.Debug.Print(Message);
        }
Esempio n. 19
0
        /// <summary>
        /// 写日志
        /// </summary>
        /// <param name="logType">日志类型</param>
        /// <param name="logMsg">日志信息</param>

        public static void WriteLog(LogTypes logType, string logMsg)
        {
            if ((int)logType < (int)LogTypeToWrite) //不必记录
            {
                return;
            }

            lock (mutex)
            {
                WriteLog(logType.ToString(), logMsg);
            }
        }
Esempio n. 20
0
 private void AppendLog(LogTypes logType, string section, string method, string text)
 {
     try
     {
         //string fullName = Path.Combine(Global.DATA_PATH, Global.LOG_NAME);
         string fullName = "TapecartFlasher.log";
         File.AppendAllText(fullName, $"{DateTime.Now:dd.MM.yyyy HH:mm:ss} {logType.ToString().PadRight(5)} [{section}] [{method}] {text}\r\n");
     }
     catch (Exception)
     {
     }
 }
Esempio n. 21
0
        internal static IRecordsReader GetLogReader(User user, LogTypes type, DateTime sinceDate, int numberOfResults)
        {
            var query = "select {0} userId, NodeId, DateStamp, logHeader, logComment from umbracoLog where UserId = @user and logHeader = @logHeader and DateStamp >= @dateStamp order by dateStamp desc {1}";

            query = ApplicationContext.Current.DatabaseContext.DatabaseProvider == DatabaseProviders.MySql
                ? string.Format(query, string.Empty, "limit 0," + numberOfResults)
                : string.Format(query, "top " + numberOfResults, string.Empty);

            return(SqlHelper.ExecuteReader(query,
                                           SqlHelper.CreateParameter("@logHeader", type.ToString()),
                                           SqlHelper.CreateParameter("@user", user.Id),
                                           SqlHelper.CreateParameter("@dateStamp", sinceDate)));
        }
Esempio n. 22
0
        public static void DirectExchangeSendQueue(string msg)
        {
            var logNames = Enum.GetValues(typeof(LogTypes));

            ConnectionFactory factory = new ConnectionFactory();

            factory.HostName = "localhost";

            using (var connection = factory.CreateConnection())
                using (var channel = connection.CreateModel())
                {
                    channel.ExchangeDeclare(exchange: "system-logs", durable: true, type: ExchangeType.Direct);

                    for (int i = 0; i < 11; i++)
                    {
                        Random   random  = new Random();
                        LogTypes logType = (LogTypes)logNames.GetValue(random.Next(logNames.Length));
                        var      body    = Encoding.UTF8.GetBytes($"log={logType.ToString()}");
                        channel.BasicPublish("system-logs", routingKey: logType.ToString(), body: body);
                    }
                }
        }
Esempio n. 23
0
        public void Write(String message, LogTypes type)
        {
            var category = type.ToString();

            var fileName = String.Format("{0}-{1}.log", DateTime.Now.ToString("dd-MM-yyyy"), category);
            var path     = HttpContext.Current.Server.MapPath("~/Logs");

            var FileName = Path.Combine(path, fileName);

            lock (Locker)
            {
                File.AppendAllText(FileName,
                                   String.Format("{0}  |  {1}\r\n", DateTime.Now.ToString("[HH:mm:ss]"), message));
            }
        }
Esempio n. 24
0
 /// <summary>
 /// Adds a log item to the log immidiately instead of Queuing it as a work item.
 /// </summary>
 /// <param name="type">The type.</param>
 /// <param name="userId">The user id.</param>
 /// <param name="nodeId">The node id.</param>
 /// <param name="comment">The comment.</param>
 public static void AddSynced(LogTypes type, int userId, int nodeId, string comment)
 {
     try
     {
         SqlHelper.ExecuteNonQuery(
             "insert into umbracoLog (userId, nodeId, logHeader, logComment) values (@userId, @nodeId, @logHeader, @comment)",
             SqlHelper.CreateParameter("@userId", userId),
             SqlHelper.CreateParameter("@nodeId", nodeId),
             SqlHelper.CreateParameter("@logHeader", type.ToString()),
             SqlHelper.CreateParameter("@comment", comment));
     }
     catch (Exception e)
     {
         Debug.WriteLine(e.ToString(), "Error");
         Trace.WriteLine(e.ToString());
     }
 }
Esempio n. 25
0
        /// <summary>
        /// Write a line of formatted log message into a log file
        /// </summary>
        /// <param name="text">Formatted log message</param>
        /// <param name="append">True to append, False to overwrite the file</param>
        /// <exception cref="System.IO.IOException"></exception>
        private void WriteLogtoFile(string text, LogTypes logType, bool append = true)
        {
            var currentTime = logType.ToString() + Environment.NewLine + DateTime.Now.ToString(_dateTimeFormat) + Environment.NewLine;

            try
            {
                using (StreamWriter stream = new StreamWriter(_fileName, append, Encoding.UTF8))
                {
                    if (text != "")
                    {
                        stream.WriteLine(text);
                    }
                }
            }
            catch
            {
                throw;
            }
        }
Esempio n. 26
0
 public static void WriteLog(LogTypes logType, string logMsg, Exception ex = null, bool bConsole = true)
 {
     if (logType >= LogManager.LogTypeToWrite)
     {
         lock (LogManager.mutex)
         {
             LogManager.WriteLog(logType.ToString(), logMsg);
         }
         if (logType >= LogTypes.Fatal && bConsole && LogManager.LogTypeToWrite <= LogTypes.Warning)
         {
             ConsoleColor color = Console.ForegroundColor;
             Console.ForegroundColor = ConsoleColor.Red;
             SysConOut.WriteLine(logMsg);
             Console.ForegroundColor = color;
         }
         if (null != ex)
         {
             LogManager.WriteException(logMsg + ex.ToString());
         }
     }
 }
Esempio n. 27
0
        public static void Log(LogTypes LogType, string Message)
        {
            try
            {
                string currentTime = GetLogTime(System.DateTime.Now);

                string LogString = null;
                if (LogType == LogTypes.Entry)
                {
                    LogString = "]" + Message;
                }
                else
                {
                    LogString = LogType.ToString(NumberFormatInfo.InvariantInfo) + " (" + currentTime + "): " + Message;
                }

                Debug("Logger: " + LogString);

                string Log = "";

                if (File.Exists(Path.Combine(GameController.GamePath + "log.dat")))
                {
                    Log = File.ReadAllText(Path.Combine(GameController.GamePath + "log.dat"));
                }

                if (string.IsNullOrEmpty(Log))
                {
                    Log = LogString;
                }
                else
                {
                    Log += Environment.NewLine + LogString;
                }

                File.WriteAllText(Path.Combine(GameController.GamePath + "log.dat"), Log);
            }
            catch (Exception ex)
            {
            }
        }
        public static string BuildLogMessage(
            StreamRequestContext context,
            LogTypes logType,
            string message,
            object applicationData = null)
        {
            context = context ?? new StreamRequestContext
            {
                AppName           = $"{AssemblyName}-UnknownEnvironment",
                Version           = string.Empty,
                SystemInformation = null
            };

            return(JsonConvert.SerializeObject(new LogEvent()
            {
                LogType = logType.ToString(),
                Message = message,
                ApplicationName = context.AppName,
                ApplicationVersion = context.Version,
                ApplicationData = applicationData,
                SystemInformation = context.SystemInformation
            }));
        }
Esempio n. 29
0
        private static void Log(LogTypes types, string message)
        {
            Console.ForegroundColor = ConsoleColor.White;
            Console.Write($"[{DateTime.Now}] - ");

            switch (types)
            {
            case LogTypes.Error:
                Console.ForegroundColor = ConsoleColor.Red;
                break;

            case LogTypes.Copied:
                Console.ForegroundColor = ConsoleColor.Green;
                break;

            case LogTypes.Changes:
                Console.ForegroundColor = ConsoleColor.Yellow;
                break;

            default:
                break;
            }
            Console.Write($"[{types.ToString()}] - {message} \n");
        }
Esempio n. 30
0
 public List<LogItem> GetLogItems(User user, LogTypes type, DateTime sinceDate)
 {
     if (ExternalLogger != null)
         return ExternalLogger.GetLogItems(user, type, sinceDate);
     
     return LogItem.ConvertIRecordsReader(SqlHelper.ExecuteReader(
         "select userId, NodeId, DateStamp, logHeader, logComment from umbracoLog where UserId = @user and logHeader = @logHeader and DateStamp >= @dateStamp order by dateStamp desc",
         SqlHelper.CreateParameter("@logHeader", type.ToString()),
         SqlHelper.CreateParameter("@user", user.Id),
         SqlHelper.CreateParameter("@dateStamp", sinceDate)));
 }
Esempio n. 31
0
        public List <LogItem> GetLogItems(User user, LogTypes type, DateTime sinceDate)
        {
            if (ExternalLogger != null)
            {
                return(ExternalLogger.GetLogItems(user, type, sinceDate));
            }

            return(LogItem.ConvertIRecordsReader(SqlHelper.ExecuteReader(
                                                     "select userId, NodeId, DateStamp, logHeader, logComment from umbracoLog where UserId = @user and logHeader = @logHeader and DateStamp >= @dateStamp order by dateStamp desc",
                                                     SqlHelper.CreateParameter("@logHeader", type.ToString()),
                                                     SqlHelper.CreateParameter("@user", user.Id),
                                                     SqlHelper.CreateParameter("@dateStamp", sinceDate))));
        }
        /// <summary>
        /// Log the server message.
        /// </summary>
        /// <param name="Message">Message to log.</param>
        /// <param name="LogType">Log Type.</param>
        public void Log(string Message, LogTypes LogType)
        {
            if (IsActive)
            {
                ThreadPool.QueueWorkItem(() =>
                {
                    if (CanLog(LogType))
                    {
                        string MessageToLog = $"{DateTime.Now.ToString()} [{LogType.ToString()}] {Message}";
                        Core.Instance.LogMessage(MessageToLog);

                        Writer.WriteLine(MessageToLog);
                        Writer.Flush();
                    }
                });
            }
        }
Esempio n. 33
0
        /// <summary>
        /// Writes a line to the console and the log from a string
        /// </summary>
        /// <param name="text"></param>
        /// <param name="type"></param>
        public static void WriteLine(string text, LogTypes type = LogTypes.INFO)
        {
            if (LicenseManager.UsageMode == LicenseUsageMode.Designtime)
            {
                return;
            }

            //Get the stack trace
            StackTrace stackTrace = new StackTrace(true);

            string     thisFileName = stackTrace.GetFrame(0).GetFileName();
            StackFrame stackFrame   = null;

            int frame = 1;

            //Get the first stack frame that isn't from this file
            while (stackFrame == null || stackFrame.GetFileName() == thisFileName)
            {
                stackFrame = stackTrace.GetFrame(frame++);
            }

            //Get data from the function that called this
            int    lineNum    = stackFrame.GetFileLineNumber();
            string fileName   = Path.GetFileName(stackFrame.GetFileName());
            string methodName = stackFrame.GetMethod().Name;

            //Get the date and time
            DateTime now  = DateTime.Now;
            string   date = now.ToString("yyyy-MM-dd");
            string   time = now.ToString("HH:mm:ss");

            //Get the type of log this is
            string typeText = type.ToString();

            //Create the output with formatting
            string output = "";

            output += time + " | ";
            output += typeText + " | ";
            output += fileName + ":" + methodName + "():" + lineNum + " | ";

            output += text + Environment.NewLine;

            if (MainForm.Debug)
            {
                System.Console.Write(output);
            }

            //Append the text to the console
            MainForm.ConsoleMessage(output, LogTypeToColor(type));

            //If we're not in debug mode
            if (!MainForm.Debug)
            {
                //If a log file for today doesn't exist
                if (!File.Exists("Logs/" + date + ".log"))
                {
                    //Make one and write the output to it
                    StreamWriter sw = File.CreateText("Logs/" + date + ".log");
                    sw.Write(output);
                    sw.Close();
                }
                else
                {
                    try {
                        notWritten += output;

                        if (!locker.IsWriterLockHeld)
                        {
                            locker.AcquireWriterLock(-1);

                            if (locker.IsWriterLockHeld)
                            {
                                File.AppendAllText("Logs/" + date + ".log", output);

                                notWritten = "";
                            }
                        }
                    } catch {
                        notWritten += output;
                    } finally {
                        locker.ReleaseWriterLock();
                    }
                }

                //If the log is an error
                if (type == LogTypes.ERROR)
                {
                    string caption = "Error!";

                    string message = text + Environment.NewLine + "The program may not function as intended." + Environment.NewLine + "Do you wish to exit?";

                    //Show a message box asking the user if they want to exit the program
                    DialogResult result = MessageBox.Show(message, caption, MessageBoxButtons.YesNo);

                    //If they don't click no, exit the program
                    if (result != DialogResult.No)
                    {
                        WriteLine("User has exited after error.");
                        Environment.Exit(1);
                    }
                }

                //If the log is a fatal
                if (type == LogTypes.FATAL)
                {
                    string error   = text.Substring(0, text.IndexOf("\n"));
                    string caption = "Fatal Error!";

                    string message = error + Environment.NewLine + "Check the Logs folder for more info, please report this." + Environment.NewLine + "The program will now exit.";

                    //Show a message box telling the user that the program is closing
                    MessageBox.Show(message, caption, MessageBoxButtons.OK);
                    Environment.Exit(2);
                }
            }
        }
        /// <summary>
        /// Log the server message.
        /// </summary>
        /// <param name="Message">Message to log.</param>
        /// <param name="LogType">Log Type.</param>
        /// <param name="TcpClient">TcpClient.</param>
        public void Log(string Message, LogTypes LogType, TcpClient TcpClient)
        {
            if (IsActive)
            {
                ThreadPool.QueueWorkItem(() =>
                {
                    if (CanLog(LogType))
                    {
                        string MessageToLog = $"{DateTime.Now.ToString() + (TcpClient == null ? "" : " " + ((IPEndPoint)TcpClient.Client.RemoteEndPoint).Address.ToString())} [{LogType.ToString()}] {Message}";
                        Core.Instance.LogMessage(MessageToLog);

                        Writer.WriteLine(MessageToLog);
                        Writer.Flush();
                    }
                });
            }
        }
Esempio n. 35
0
 internal static IRecordsReader GetLogReader(User user, LogTypes type, DateTime sinceDate, int numberOfResults)
 {
     if (SqlHelper is umbraco.DataLayer.SqlHelpers.MySql.MySqlHelper)
     {
         return SqlHelper.ExecuteReader(
             "select userId, NodeId, DateStamp, logHeader, logComment from umbracoLog where UserId = @user and logHeader = @logHeader and DateStamp >= @dateStamp order by dateStamp desc limit " + numberOfResults,
             SqlHelper.CreateParameter("@logHeader", type.ToString()),
             SqlHelper.CreateParameter("@user", user.Id),
             SqlHelper.CreateParameter("@dateStamp", sinceDate));
     }
     else
     {
         return SqlHelper.ExecuteReader(
             "select top " + numberOfResults + " userId, NodeId, DateStamp, logHeader, logComment from umbracoLog where UserId = @user and logHeader = @logHeader and DateStamp >= @dateStamp order by dateStamp desc",
             SqlHelper.CreateParameter("@logHeader", type.ToString()),
             SqlHelper.CreateParameter("@user", user.Id),
             SqlHelper.CreateParameter("@dateStamp", sinceDate));
     }
 }
Esempio n. 36
0
 public static IRecordsReader GetLogReader(User user, LogTypes Type, DateTime SinceDate)
 {
     return SqlHelper.ExecuteReader(
         "select userId, NodeId, DateStamp, logHeader, logComment from umbracoLog where UserId = @user and logHeader = @logHeader and DateStamp >= @dateStamp order by dateStamp desc",
         SqlHelper.CreateParameter("@logHeader", Type.ToString()),
         SqlHelper.CreateParameter("@user", user.Id),
         SqlHelper.CreateParameter("@dateStamp", SinceDate));
 }
Esempio n. 37
0
        /// <summary>
        /// Log a message.
        /// </summary>
        /// <param name="type">The type of the log (DEBUG, INFO, WARNING, ERROR).</param>
        /// <param name="message">The message to be logged.</param>
        /// <param name="logtoconsole">Force the message be logged to the console</param>
        /// <param name="logtofile">Force the message be logged to file</param>
        private static void Log(string message, LogTypes type = LogTypes.INFO, bool logtoconsole = false, bool logtofile = false)
        {
            if (type <= LogTypes.NONE) // Goat boy is a bad boy.
                return;

            if ((ConsoleLogLevel >= type) || logtoconsole)
                Console.WriteLine(String.Format("[{0} {1}] {2}", DateTime.Now.ToString("HH:mm:ss"), type.ToString(), message));

            if ((FileLogLevel >= type) || logtofile)
                File.AppendAllText(_logfile, String.Format("[{0} {1}] {2}\r\n", DateTime.Now.ToString("dd MMM yyyy-HH:mm:ss:fff"), type.ToString(), message));
        }
Esempio n. 38
0
        /// <summary>
        /// Adds the specified log item to the log.
        /// </summary>
        /// <param name="type">The log type.</param>
        /// <param name="user">The user adding the item.</param>
        /// <param name="nodeId">The affected node id.</param>
        /// <param name="comment">Comment.</param>
        public static void Add(LogTypes type, User user, int nodeId, string comment)
        {
            if (Instance.ExternalLogger != null)
            {
                Instance.ExternalLogger.Add(type, user, nodeId, comment);

                if (UmbracoConfig.For.UmbracoSettings().Logging.ExternalLoggerEnableAuditTrail == false)
                {
                    AddLocally(type, user, nodeId, comment);
                }
            }
            else
            {
                if (UmbracoConfig.For.UmbracoSettings().Logging.EnableLogging == false) return;

                if (UmbracoConfig.For.UmbracoSettings().Logging.DisabledLogTypes.Any(x => x.LogTypeAlias.InvariantEquals(type.ToString())) == false)
                {
                    if (comment != null && comment.Length > 3999)
                        comment = comment.Substring(0, 3955) + "...";

                    if (UmbracoConfig.For.UmbracoSettings().Logging.EnableAsyncLogging)
                    {
                        ThreadPool.QueueUserWorkItem(
                            delegate { AddSynced(type, user == null ? 0 : user.Id, nodeId, comment); });
                        return;
                    }

                    AddSynced(type, user == null ? 0 : user.Id, nodeId, comment);
                }

            }
        }
Esempio n. 39
0
        //public static void LogCheat(HackTypes type, MapleClient c, string msg = "")
        //{
        //    Cheaters.Add(type, c);
        //    //TODO:
        //    //Log msg and such to file.
        //}
        public static void WriteLog(LogTypes type, string msg, params object[] pObjects)
        {
            string tab = "";
            for (int i = 1; i > (type.ToString().Length / 8); i--)
            {
                tab += "\t";
            }
            if (type == LogTypes.Debug)
            {
                Console.ForegroundColor = ConsoleColor.Green;
                Console.Write("\tDebug" + tab + "| ");
            }
            else if (type == LogTypes.Info)
            {
                Console.ForegroundColor = ConsoleColor.Gray;
                Console.Write("\tInfo" + tab + "| ");
            }
            else if (type == LogTypes.Warning)
            {
                Console.ForegroundColor = ConsoleColor.DarkYellow;
                Console.Write("\tWarning" + tab + "| ");
            }
            else if (type == LogTypes.Error)
            {
                Console.ForegroundColor = ConsoleColor.Red;
                Console.Write("\tError" + tab + "| ");
            }
            else if (type == LogTypes.Connect)
            {
                Console.ForegroundColor = ConsoleColor.DarkGreen;
                Console.Write("\tConnect" + tab + "| ");
            }
            else if (type == LogTypes.Disconnect)
            {
                Console.ForegroundColor = ConsoleColor.DarkRed;
                Console.Write("\tDisconnect" + tab + "| ");
            }
            else if (type == LogTypes.NX)
            {
                Console.ForegroundColor = ConsoleColor.Yellow;
                Console.Write("\tNX" + tab + "| ");
            }

            Console.ForegroundColor = ConsoleColor.White;
            Console.WriteLine(msg, pObjects);
            if (mCommandEnabled)
                Console.Write("> {0}", mCommandBuffer);
        }
Esempio n. 40
0
        /// <summary>
        /// Adds the specified log item to the log.
        /// </summary>
        /// <param name="type">The log type.</param>
        /// <param name="user">The user adding the item.</param>
        /// <param name="nodeId">The affected node id.</param>
        /// <param name="comment">Comment.</param>
        public static void Add(LogTypes type, User user, int nodeId, string comment)
        {
            if (Instance.ExternalLogger != null)
            {
                Instance.ExternalLogger.Add(type, user, nodeId, comment);

                if (UmbracoConfig.For.UmbracoSettings().Logging.ExternalLoggerEnableAuditTrail == false)
                {
                    AddLocally(type, user, nodeId, comment);
                }
            }
            else
            {
                if (UmbracoConfig.For.UmbracoSettings().Logging.EnableLogging == false)
                {
                    return;
                }

                if (UmbracoConfig.For.UmbracoSettings().Logging.DisabledLogTypes.Any(x => x.LogTypeAlias.InvariantEquals(type.ToString())) == false)
                {
                    if (comment != null && comment.Length > 3999)
                    {
                        comment = comment.Substring(0, 3955) + "...";
                    }

                    if (UmbracoConfig.For.UmbracoSettings().Logging.EnableAsyncLogging)
                    {
                        ThreadPool.QueueUserWorkItem(
                            delegate { AddSynced(type, user == null ? 0 : user.Id, nodeId, comment); });
                        return;
                    }

                    AddSynced(type, user == null ? 0 : user.Id, nodeId, comment);
                }
            }
        }
Esempio n. 41
0
        internal static IRecordsReader GetLogReader(User user, LogTypes type, DateTime sinceDate, int numberOfResults)
        {
            var query = "select {0} userId, NodeId, DateStamp, logHeader, logComment from umbracoLog where UserId = @user and logHeader = @logHeader and DateStamp >= @dateStamp order by dateStamp desc {1}";

            query = ApplicationContext.Current.DatabaseContext.DatabaseProvider == DatabaseProviders.MySql 
                ? string.Format(query, string.Empty, "limit 0," + numberOfResults) 
                : string.Format(query, "top " + numberOfResults, string.Empty);

            return SqlHelper.ExecuteReader(query, 
                                           SqlHelper.CreateParameter("@logHeader", type.ToString()), 
                                           SqlHelper.CreateParameter("@user", user.Id), 
                                           SqlHelper.CreateParameter("@dateStamp", sinceDate));
        }
Esempio n. 42
0
 /// <summary>
 /// Adds a log item to the log immidiately instead of Queuing it as a work item.
 /// </summary>
 /// <param name="type">The type.</param>
 /// <param name="userId">The user id.</param>
 /// <param name="nodeId">The node id.</param>
 /// <param name="comment">The comment.</param>
 public static void AddSynced(LogTypes type, int userId, int nodeId, string comment)
 {
     try
     {
         SqlHelper.ExecuteNonQuery(
             "insert into umbracoLog (userId, nodeId, logHeader, logComment) values (@userId, @nodeId, @logHeader, @comment)",
             SqlHelper.CreateParameter("@userId", userId),
             SqlHelper.CreateParameter("@nodeId", nodeId),
             SqlHelper.CreateParameter("@logHeader", type.ToString()),
             SqlHelper.CreateParameter("@comment", comment));
     }
     catch (Exception e)
     {
         Debug.WriteLine(e.ToString(), "Error");
         Trace.WriteLine(e.ToString());
     }
 }
Esempio n. 43
0
        /// <summary>
        /// Adds a log item to the log immidiately instead of Queuing it as a work item.
        /// </summary>
        /// <param name="type">The type.</param>
        /// <param name="userId">The user id.</param>
        /// <param name="nodeId">The node id.</param>
        /// <param name="comment">The comment.</param>
        public static void AddSynced(LogTypes type, int userId, int nodeId, string comment)
        {
            var logTypeIsAuditType = type.GetType().GetField(type.ToString()).GetCustomAttributes(typeof(AuditTrailLogItem), true).Length != 0;

            if (logTypeIsAuditType)
            {
                try
                {
                    SqlHelper.ExecuteNonQuery(
                        "insert into umbracoLog (userId, nodeId, logHeader, logComment) values (@userId, @nodeId, @logHeader, @comment)",
                        SqlHelper.CreateParameter("@userId", userId),
                        SqlHelper.CreateParameter("@nodeId", nodeId),
                        SqlHelper.CreateParameter("@logHeader", type.ToString()),
                        SqlHelper.CreateParameter("@comment", comment));
                }
                catch (Exception e)
                {
					LogHelper.Error<Log>("An error occurred adding an audit trail log to the umbracoLog table", e);
                }

				//Because 'Custom' log types are also Audit trail (for some wacky reason) but we also want these logged normally so we have to check for this:
				if (type != LogTypes.Custom)
				{
					return;
				}

            }

			//if we've made it this far it means that the log type is not an audit trail log or is a custom log.
			LogHelper.Info<Log>(
				"Redirected log call (please use Umbraco.Core.Logging.LogHelper instead of umbraco.BusinessLogic.Log) | Type: {0} | User: {1} | NodeId: {2} | Comment: {3}",
				() => type.ToString(), () => userId, () => nodeId.ToString(CultureInfo.InvariantCulture), () => comment);            
        }