Ejemplo n.º 1
0
        /// <summary>
        /// Фиксирует состояние сервиса.
        /// </summary>
        /// <param name="service">Сервис, для которого производится регистрация состояния.</param>
        /// <param name="serviceStatus">Состояние сервиса.</param>
        /// <param name="serviceStatusDetailed">Детализированное состояние сервиса.</param>
        /// <param name="exception">Ошибки, если были зарегистрированы.</param>
        public void RegisterServiceState(IMonitoredService service, ServiceStatus serviceStatus, string serviceStatusDetailed = null, Exception exception = null)
        {
            RegisterServiceStateWithoutJournal(service, serviceStatus, serviceStatusDetailed);

            var eventType = EventType.Info;

            if (serviceStatus == ServiceStatus.RunningIdeal)
            {
                eventType = EventType.Info;
            }
            else if (serviceStatus == ServiceStatus.RunningWithErrors)
            {
                eventType = EventType.Error;
            }
            else if (serviceStatus == ServiceStatus.CannotRunBecouseOfErrors)
            {
                eventType = EventType.CriticalError;
            }
            else if (serviceStatus == ServiceStatus.Shutdown)
            {
                eventType = EventType.Info;
            }

            RegisterServiceEvent(service, eventType, serviceStatus.ToStringFriendly(), serviceStatusDetailed, exception);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Записывает в журнал сервиса событие, связанное с сервисом.
        /// </summary>
        /// <param name="service">Сервис, для которого производится регистрация состояния.</param>
        /// <param name="eventType">См. <see cref="JournalData.EventType"/>.</param>
        /// <param name="eventInfo">См. <see cref="JournalData.EventInfo"/>.</param>
        /// <param name="eventInfoDetailed">См. <see cref="JournalData.EventInfoDetailed"/>.</param>
        /// <param name="exception">См. <see cref="JournalData.ExceptionDetailed"/>.</param>
        public void RegisterServiceEvent(IMonitoredService service, EventType eventType, string eventInfo, string eventInfoDetailed = null, Exception exception = null)
        {
            var serviceJournal = GetJournalName(service);

            if (serviceJournal != null)
            {
                AppCore.Get <JournalingManager>().RegisterEvent(serviceJournal.IdJournal, eventType, eventInfo, eventInfoDetailed, null, exception);
            }
        }
Ejemplo n.º 3
0
 private JournalInfo GetJournalName(IMonitoredService service)
 {
     return(_servicesJournalsList.GetOrAddWithExpiration(service.ServiceID, (key) =>
     {
         var result = AppCore.Get <JournalingManager>().RegisterJournal(1, service.ServiceName, "ServiceMonitor_" + key.ToString());
         if (!result.IsSuccess)
         {
             this.RegisterEvent(EventType.Error, "Не удалось зарегистрировать журнал мониторинга", $"Журнал для типа '{service.GetType().FullName}'");
         }
         return result.Result;
     }, TimeSpan.FromMinutes(15)));
 }
Ejemplo n.º 4
0
        /// <summary>
        /// Фиксирует состояние сервиса без записи в журнал.
        /// </summary>
        /// <param name="service">Сервис, для которого производится регистрация состояния.</param>
        /// <param name="serviceStatus">Состояние сервиса.</param>
        /// <param name="serviceStatusDetailed">Детализированное состояние сервиса.</param>
        public void RegisterServiceStateWithoutJournal(IMonitoredService service, ServiceStatus serviceStatus, string serviceStatusDetailed = null)
        {
            var newState = new ServiceInfo()
            {
                ID                 = service.ServiceID,
                Name               = service.ServiceName,
                LastStatus         = serviceStatus,
                LastStatusDetailed = serviceStatusDetailed,
                LastDateEvent      = DateTime.Now
            };

            _servicesList.AddOrUpdate(service.ServiceID, newState, (k, i) => newState);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Возвращает журнал для указанного сервиса.
        /// </summary>
        public IEnumerable <JournalData> GetServiceJournal(IMonitoredService service)
        {
            var serviceJournal = GetJournalName(service);

            return(GetServiceJournal(service.ServiceID));
        }
Ejemplo n.º 6
0
 /// <summary>
 /// Возвращает журнал для указанного сервиса.
 /// </summary>
 public IEnumerable <JournalData> GetServiceJournal(IMonitoredService service)
 {
     return(AppCore.Get <Monitor <WebApplication> >().GetServiceJournal(service));
 }
Ejemplo n.º 7
0
 /// <summary>
 /// Записывает в журнал сервиса событие, связанное с сервисом.
 /// </summary>
 /// <param name="service">Сервис, для которого производится регистрация состояния.</param>
 /// <param name="eventType">См. <see cref="JournalingManager.RegisterEvent"/>.</param>
 /// <param name="eventInfo">См. <see cref="JournalingManager.RegisterEvent"/>.</param>
 /// <param name="eventInfoDetailed">См. <see cref="JournalingManager.RegisterEvent"/>.</param>
 /// <param name="exception">См. <see cref="JournalingManager.RegisterEvent"/>.</param>
 public void RegisterServiceEvent(IMonitoredService service, EventType eventType, string eventInfo, string eventInfoDetailed = null, Exception exception = null)
 {
     AppCore.Get <Monitor <WebApplication> >().RegisterServiceEvent(service, eventType, eventInfo, eventInfoDetailed, exception);
 }
Ejemplo n.º 8
0
 /// <summary>
 /// Фиксирует состояние сервиса.
 /// </summary>
 /// <param name="service">Сервис, для которого производится регистрация состояния.</param>
 /// <param name="serviceStatus">Состояние сервиса.</param>
 /// <param name="serviceStatusDetailed">Детализированное состояние сервиса.</param>
 /// <param name="exception">Ошибки, если были зарегистрированы.</param>
 public void RegisterServiceState(IMonitoredService service, ServiceStatus serviceStatus, string serviceStatusDetailed = null, Exception exception = null)
 {
     AppCore.Get <Monitor <WebApplication> >().RegisterServiceState(service, serviceStatus, serviceStatusDetailed, exception);
 }
Ejemplo n.º 9
0
 /// <summary>
 /// Фиксирует состояние сервиса без записи в журнал.
 /// </summary>
 /// <param name="service">Сервис, для которого производится регистрация состояния.</param>
 /// <param name="serviceStatus">Состояние сервиса.</param>
 /// <param name="serviceStatusDetailed">Детализированное состояние сервиса.</param>
 public void RegisterServiceStateWithoutJournal(IMonitoredService service, ServiceStatus serviceStatus, string serviceStatusDetailed = null)
 {
     AppCore.Get <Monitor <WebApplication> >().RegisterServiceStateWithoutJournal(service, serviceStatus, serviceStatusDetailed);
 }
Ejemplo n.º 10
0
 /// <summary>
 /// Записывает в журнал сервиса событие, связанное с сервисом.
 /// </summary>
 /// <param name="service">Сервис, для которого производится регистрация состояния.</param>
 /// <param name="eventType">См. <see cref="JournalingManager.RegisterEvent"/>.</param>
 /// <param name="eventInfo">См. <see cref="JournalingManager.RegisterEvent"/>.</param>
 /// <param name="eventInfoDetailed">См. <see cref="JournalingManager.RegisterEvent"/>.</param>
 /// <param name="exception">См. <see cref="JournalingManager.RegisterEvent"/>.</param>
 public static void RegisterServiceEvent(this IMonitoredService service, EventType eventType, string eventInfo, string eventInfoDetailed = null, Exception exception = null)
 {
     service.GetAppCore().Get <Monitor>()?.RegisterServiceEvent(service, eventType, eventInfo, eventInfoDetailed, exception);
 }
Ejemplo n.º 11
0
 /// <summary>
 /// Фиксирует состояние сервиса на момент вызова метода.
 /// </summary>
 /// <param name="service">Сервис, для которого производится регистрация состояния.</param>
 /// <param name="serviceStatus">Состояние сервиса.</param>
 /// <param name="serviceStatusDetailed">Детализированное состояние сервиса.</param>
 /// <param name="exception">Ошибки, если были зарегистрированы.</param>
 public static void RegisterServiceState(this IMonitoredService service, ServiceStatus serviceStatus, string serviceStatusDetailed = null, Exception exception = null)
 {
     service.GetAppCore().Get <Monitor>()?.RegisterServiceState(service, serviceStatus, serviceStatusDetailed, exception);
 }