示例#1
0
        private async Task <bool> AddAsyncInternal(EventLog eventLog, long maxSize)
        {
            _loggerService.StartMethod();

            try
            {
                string fileName = GetFileName(eventLog);
                string filePath = Path.Combine(_basePath, fileName);

                if (File.Exists(filePath))
                {
                    _loggerService.Info($"{filePath} already exist.");
                    return(false);
                }

                var serializedJson = JsonConvert.SerializeObject(eventLog);

                // Check log size.
                long size = Encoding.UTF8.GetByteCount(serializedJson);
                if (size > maxSize)
                {
                    _loggerService.Info($"Log size {size} exceed maxSize {maxSize} bytes.");
                    return(false);
                }

                string directoryName = Path.GetDirectoryName(filePath);
                if (!Directory.Exists(directoryName))
                {
                    Directory.CreateDirectory(directoryName);
                    _loggerService.Info($"Directory created. directoryName:{directoryName}");
                }

                await File.WriteAllTextAsync(filePath, serializedJson);

                _loggerService.Info($"Write event log. filePath:{filePath}");

                _backupAttributeService.SetSkipBackupAttributeToEventLogDir();

                return(true);
            }
            catch (Exception ex)
            {
                _loggerService.Exception("Write event log failure.", ex);
            }
            finally
            {
                _loggerService.EndMethod();
            }
            return(false);
        }
示例#2
0
        protected override void OnInitialized()
        {
            InitializeComponent();

            LoggerService = Container.Resolve <ILoggerService>();
            LoggerService.StartMethod();
            LogFileService = Container.Resolve <ILogFileService>();
            LogFileService.SetSkipBackupAttributeToLogDir();
            BackupAttributeService = Container.Resolve <IBackupAttributeService>();
            BackupAttributeService.SetSkipBackupAttributeToEventLogDir();

            EventLogRepository = Container.Resolve <IEventLogRepository>();

            LogUnobservedTaskExceptions();

            FirstLoad = false;

            LoggerService.EndMethod();
        }