コード例 #1
0
ファイル: Logger.cs プロジェクト: JannesP/StreamsitePlayer
        static Logger()
        {
            string logFile = LOG_PATH;
            logFile += DateTime.Now.Year.ToString("0000");   //yyyy
            logFile += DateTime.Now.Day.ToString("00");    //yyyydd
            logFile += (DateTime.Now.Month + 1).ToString("00");    //yyyyddmm
            logFile += "-" + DateTime.Now.Hour.ToString("00"); //yyyyddmm-hh
            logFile += DateTime.Now.Minute.ToString("00"); //yyyyddmm-hhmm
            logFile += DateTime.Now.Second.ToString("00"); //yyyyddmm-hhmmss
            logFile += DateTime.Now.Millisecond.ToString("000"); //yyyyddmm-hhmmssmmm
            logFile += "-updater.log";  //yyyyddmm-hhmmssmmm.log
            Logger.logFile = Path.Combine(Environment.CurrentDirectory, logFile);
            try
            {
                if (!Directory.Exists(LOG_PATH))
                {
                    Directory.CreateDirectory(LOG_PATH);
                }
                File.Create(Logger.logFile).Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show("The Log file couldn't be created.\nCheck the permissions or start the program as admin.\nWe need write access to the executable directory!\n" + ex.ToString(), "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                Application.Exit();
            }

            instance = new LoggerInstance(logFile);
        }
コード例 #2
0
        public override void TraceData(System.Diagnostics.TraceEventCache eventCache, string source, System.Diagnostics.TraceEventType eventType, int id, object data)
        {
            var logEntry = (Microsoft.Practices.EnterpriseLibrary.Logging.LogEntry)data;

            var fileLogEntry = new LogEntry
            {
                TimeStamp           = logEntry.TimeStamp.Add(TimeZoneAdjustment),
                ApplicationDomainId = AppDomain.CurrentDomain.Id,
                ThreadId            = System.Threading.Thread.CurrentThread.ManagedThreadId,
                Message             = logEntry.Message,
                Severity            = logEntry.Severity.ToString(),
            };

            string title = logEntry.Title;

            title = title.Substring(title.IndexOf(")") + 2); // Removing ({AppDomainId} - {ThreadId}}) prefix.

            // Extracting display options from title
            if (title.StartsWith("RGB("))
            {
                fileLogEntry.DisplayOptions = title.Substring(0, title.IndexOf(")") + 1);
                title = title.Substring(fileLogEntry.DisplayOptions.Length);
            }
            fileLogEntry.Title = title;

            LoggerInstance.WriteEntry(fileLogEntry);
        }
コード例 #3
0
        public static void Write(Exception ex)
        {
            var exMessage = $"{ex.Message}\nSTACK_TRACE: {ex.StackTrace}";

            Writer?.Invoke(exMessage, MessageType.Error);
            LoggerInstance?.LogError(exMessage);
        }
コード例 #4
0
 public static void Stop()
 {
     if (IsInitiated)
     {
         LoggerInstance.Stop();
     }
 }
コード例 #5
0
        public static void Log(ScreenLogDefinition screenLog)
        {
            try {
                if (!ApplicationMonitoringEnabled)
                {
                    return;
                }

                switch (screenLog.ScreenType)
                {
                case "WEB":

                    break;

                case "SMS":
                    break;

                default:
                    break;
                }
                LoggerInstance.Log(screenLog);
            } catch (Exception e) {
                logthrottle.WriteErrorWithThrottle(EventLogger.WriteError, "Error sending log: " + e.ToString());
            }
        }
コード例 #6
0
ファイル: UnitTest1.cs プロジェクト: TinyStuff/TinyLog
        public void LogText()
        {
            var obj = new Template();

            obj.Name = "MyTemplate";
            obj.Id   = 42;

            obj.TemplateProperties = new List <TemplateProperty>
            {
                new TemplateProperty
                {
                    key  = "logText",
                    type = "string"
                },

                new TemplateProperty
                {
                    key  = "timeStamp",
                    type = "datetime"
                }
            };

            var s = new TemplateService();


            var instance = new LoggerInstance(s);

            instance.ReceievedLogText += new LoggerInstance.ReceievedLogTextHandler(TestLogger.DebugWrite);
            var logString = "42,Hjaaaaeeeellp maj," + DateTime.Now;

            instance.LogText(logString);

            Assert.True(logString == TestLogger.result);
        }
コード例 #7
0
        private Status Export(string nameBase, ExportCommand c, int i)
        {
            try
            {
                var fileName = GetFileFullPath(nameBase, c, i);

                // Although the file name has been checked to have no conflict, if the user choose
                // to export multiple files to the same folder, the file names can still collide.
                var newName = File.Exists(fileName)
                    ? GenerateFileName(nameBase + i.ToString().PadLeft(2, '0'), c)
                    : fileName;

                File.WriteAllText(newName,
                                  Providers.Types.GetExportText(c.ProviderType, route, navaids, airports));
                return(new Status(newName, true, "", false));
            }
            catch (Exception ex)
            {
                LoggerInstance.Log(ex);
                var mayBePermissionIssue = ex is UnauthorizedAccessException ||
                                           ex is SecurityException;

                return(new Status(c.CustomDirectory, false, ex.Message, mayBePermissionIssue));
            }
        }
コード例 #8
0
        public static string ExecuteQueryToDisplayString(string query, string connectionString,
                                                         Func <SqlCommand> commandCreator)
        {
            if (String.IsNullOrEmpty(query))
            {
                return(String.Empty);
            }

            try
            {
                string[] dataset = null;
                var      headers = new StringBuilder();
                if (connectionString != null)
                {
                    dataset = DatabaseUtils.Query(query, connectionString, r => ConvertRowToString(r, headers)).ToArray();
                }
                else if (commandCreator != null)
                {
                    dataset = DatabaseUtils.Query(query, commandCreator, r => ConvertRowToString(r, headers)).ToArray();
                }
                return(headers + "\r\n" + String.Join("\r\n", dataset));
            }
            catch (Exception ex)
            {
                return(LoggerInstance.FormatExeption(ex));
            }
        }
コード例 #9
0
 public new static Logger GetLoggerInstance()
 {
     if (LoggerInstance == null || LoggerInstance.GetType() != typeof(ColorfulLogger))
     {
         LoggerInstance = new ColorfulLogger();
     }
     return(LoggerInstance);
 }
コード例 #10
0
 public static void Log(RequestEventDefinition log)
 {
     try {
         LoggerInstance.Log(log);
     } catch (Exception e) {
         logthrottle.WriteErrorWithThrottle(EventLogger.WriteError, "Error sending log: " + e.ToString());
     }
 }
コード例 #11
0
        protected void Application_Error()
        {
            var exception = Server.GetLastError();

            if (exception != null)
            {
                LoggerInstance.Fatal(exception, "Application error");
            }
        }
コード例 #12
0
        private static void HandleException(Exception ex)
        {
            LoggerInstance.Log(ex);

            var frm = new UnhandledExceptionForm();

            frm.Init(ex.ToString());
            frm.ShowDialog();

            Environment.Exit(1);
        }
コード例 #13
0
 // Must use full path for fileName, if it is a file instead of webpage.
 public static void TryOpenFile(string fileName, Control parentControl = null)
 {
     try
     {
         Process.Start(fileName);
     }
     catch (Exception ex)
     {
         LoggerInstance.Log(ex);
         MsgBoxHelper.ShowWarning(parentControl, "Cannot open the specified file.");
     }
 }
コード例 #14
0
ファイル: WebRequests.cs プロジェクト: zylx0532/QSimPlanner
 /// <summary>
 /// Basically always use this to avoid errors due to .Net using old
 /// security protocols by default.
 /// </summary>
 public static void SetSecuityProtocol()
 {
     try
     {
         ServicePointManager.Expect100Continue = true;
         ServicePointManager.SecurityProtocol  = SecurityProtocolType.Tls12;
     }
     catch (System.Exception e)
     {
         LoggerInstance.Log(e);
     }
 }
コード例 #15
0
        public void Log(LogType type, string message, LogTarget target)
        {
            CreateInstance(target, new LogItem()
            {
                Id        = Guid.NewGuid(),
                Message   = message,
                Type      = type,
                TimeStamp = DateTime.Now
            });

            LoggerInstance.Log();
        }
コード例 #16
0
 public static void Log(ServiceAPILogDefinition log)
 {
     try {
         if (!ApplicationMonitoringEnabled)
         {
             return;
         }
         LoggerInstance.Log(log);
     } catch (Exception e) {
         logthrottle.WriteErrorWithThrottle(EventLogger.WriteError, "Error sending log: " + e.ToString());
     }
 }
コード例 #17
0
ファイル: StateManager.cs プロジェクト: pedro2555/QSimPlanner
 public static XDocument Load(string fileName)
 {
     try
     {
         return(XDocument.Load(Path.Combine(Directory, fileName)));
     }
     catch (Exception ex)
     {
         LoggerInstance.Log(ex);
         return(null);
     }
 }
コード例 #18
0
        public static void Log(LogLevel level, string message, params object[] args)
        {
            if (LoggerInstance == null)
            {
                LoggerInstance = new ConsoleLogger();
                MinLogLevel    = LogLevel.Info;
            }

            if (level >= MinLogLevel)
            {
                LoggerInstance.LogMessage(level, String.Format(message, args));
            }
        }
コード例 #19
0
 /// <summary>
 /// If the file does not exist, create one.
 /// Then read the file into an AppOptions instance.
 /// Return value is never null.
 /// </summary>
 /// <exception cref="Exception"></exception>
 public static AppOptions ReadOrCreateFile()
 {
     try
     {
         return(ReadFromFile());
     }
     catch (Exception ex)
     {
         LoggerInstance.Log(ex);
         SaveToFile(AppOptions.Default);
         return(ReadFromFile());
     }
 }
コード例 #20
0
 // Returns whether the creation was successful.
 private static bool CreateTmpHtml(string html)
 {
     try
     {
         Directory.CreateDirectory(Path.GetDirectoryName(tmpFilePath));
         File.WriteAllText(tmpFilePath, html);
         return(true);
     }
     catch (Exception e)
     {
         LoggerInstance.Log(e);
         return(false);
     }
 }
コード例 #21
0
ファイル: Program.cs プロジェクト: zylx0532/QSimPlanner
        private static void HandleException(Exception ex)
        {
            LoggerInstance.Log(ex);

            var versionStr = "Version: " + Updates.Utilities.TryGetVersion();
            var res        = UnhandledExceptionForm.ShowModal(ex.ToString());

            if (res == UnhandledExceptionForm.FormDialogResult.Yes)
            {
                ReportError(versionStr + '\n' + ex.ToString());
            }

            Environment.Exit(1);
        }
コード例 #22
0
        private void DeleteCurrentConfigFile()
        {
            var file = currentConfig.FilePath;

            try
            {
                File.Delete(file);
            }
            catch (Exception e)
            {
                LoggerInstance.Log(e);
                ParentControl.ShowWarning("The config was saved but the old config cannot" +
                                          $"be deleted. Please manually delete {Path.GetFullPath(file)}.");
            }
        }
コード例 #23
0
 public static void Log(ErrorLogDefinition log)
 {
     try {
         if (LoggerInstance != null)
         {
             LoggerInstance.Log(log);
         }
         else
         {
             EventLogger.WriteError(log.Message);
         }
     } catch (Exception e) {
         EventLogger.WriteError("Error sending log: " + e.ToString());
     }
 }
コード例 #24
0
ファイル: StateManager.cs プロジェクト: pedro2555/QSimPlanner
        public static void Save(string fileName, XElement elem)
        {
            try
            {
                var filePath = Path.Combine(Directory, fileName);
                System.IO.Directory.CreateDirectory(Directory);

                using (StreamWriter writer = File.CreateText(filePath))
                {
                    writer.Write(elem);
                }
            }
            catch (Exception ex)
            {
                LoggerInstance.Log(ex);
            }
        }
コード例 #25
0
 public static void Log(ServiceAPIDetailLogDefinition log)
 {
     try {
         if (!ApplicationMonitoringEnabled)
         {
             return;
         }
         if (LoggerInstance != null)
         {
             LoggerInstance.Log(log);
         }
         else
         {
             EventLogger.WriteInfo(log.Message);
         }
     } catch (Exception e) {
         logthrottle.WriteErrorWithThrottle(EventLogger.WriteError, "Error sending log: " + e.ToString());
     }
 }
コード例 #26
0
        // Returns null if failed to load or create file.
        private XDocument LoadOrCreateFile()
        {
            if (File.Exists(filePath))
            {
                return(XDocument.Load(filePath));
            }

            try
            {
                var doc = CreateDoc();
                File.WriteAllText(filePath, doc.ToString());
                return(doc);
            }
            catch (Exception e)
            {
                LoggerInstance.Log(e);
                return(null);
            }
        }
コード例 #27
0
ファイル: BakeLayer.cs プロジェクト: RavenB/gridsearch
        /// <summary>
        /// Default constructor
        /// </summary>
        /// <param name="client">Reference to the GridClient object</param>
        /// <param name="bakeType"></param>
        /// <param name="textureCount">Total number of layers this layer set is
        /// composed of</param>
        /// <param name="paramValues">Appearance parameters the drive the 
        /// baking process</param>
        public Baker(LoggerInstance log, AppearanceManager.BakeType bakeType, int textureCount, Dictionary<int, float> paramValues)
        {
            _log = log;
            _bakeType = bakeType;
            _textureCount = textureCount;

            if (bakeType == AppearanceManager.BakeType.Eyes)
            {
                _bakeWidth = 128;
                _bakeHeight = 128;
            }
            else
            {
                _bakeWidth = 512;
                _bakeHeight = 512;
            }

            _paramValues = paramValues;

            if (textureCount == 0)
                Bake();
        }
コード例 #28
0
ファイル: WptListLoader.cs プロジェクト: zylx0532/QSimPlanner
        /// <exception cref="WaypointFileReadException"></exception>
        /// <exception cref="LoadCountryNamesException"></exception>
        public LoadResult LoadFromFile()
        {
            var wptList      = new WaypointList();
            var countryCodes = new FixesLoader(wptList, Logger.Instance)
                               .ReadFromFile(waypointsFilePath);

            var err = AtsFileLoader.ReadFromFile(wptList, atsFilePath);

            if (err != null)
            {
                LoggerInstance.Log(err);
            }

            var countryFullNames = FullNamesLoader.Load();
            var countryManager   = new CountryCodeManager(countryCodes, countryFullNames);

            return(new LoadResult()
            {
                WptList = wptList,
                CountryCodes = countryManager
            });
        }
コード例 #29
0
        // Returns whether the addition succeeds.
        public bool Add(string registration)
        {
            var old = DeletedRegistration();

            if (old == null)
            {
                return(false);
            }
            var elem = old.Concat(registration).Select(reg => new XElement("Item", reg));
            var root = new XElement("Root", elem.ToArray());

            try
            {
                File.WriteAllText(filePath, new XDocument(root).ToString());
                return(true);
            }
            catch (Exception e)
            {
                LoggerInstance.Log(e);
                return(false);
            }
        }
コード例 #30
0
 public static void Log(GeneralLogDefinition log)
 {
     try {
         if (!ApplicationMonitoringEnabled)
         {
             return;
         }
         if (log.ModuleName == "ALARM")
         {
             EventLogger.WriteWarning(log.Message);
         }
         if (LoggerInstance != null)
         {
             LoggerInstance.Log(log);
         }
         else
         {
             EventLogger.WriteInfo(log.Message);
         }
     } catch (Exception e) {
         logthrottle.WriteErrorWithThrottle(EventLogger.WriteError, "Error sending log: " + e.ToString());
     }
 }
コード例 #31
0
ファイル: Program.cs プロジェクト: zylx0532/QSimPlanner
        private static void ReportError(string message)
        {
            try
            {
                var url = config.GetString("ErrorReportUrl");
                var assemblyLocation = Assembly.GetExecutingAssembly().Location;

                var info = new ProcessStartInfo()
                {
                    WorkingDirectory = Path.GetDirectoryName(assemblyLocation),
                    FileName         = "ErrorReport.exe",
                    Arguments        = Strings.EscapeCommandLineArg(url) + " " +
                                       Strings.EscapeCommandLineArg(message),
                    WindowStyle = ProcessWindowStyle.Hidden
                };

                Process.Start(info);
            }
            catch (Exception e)
            {
                MsgBoxHelper.ShowError(null, "Failed to report the error.");
                LoggerInstance.Log(e);
            }
        }
コード例 #32
0
 public Marker(LoggerInstance log)
 {
     this.log = log;
     log.MarkerIn();
 }