コード例 #1
0
 private static void PublishRecoverEvent(string msg)
 {
     if (Interlocked.CompareExchange(ref RegionTagRetriever.isGlsOk, 1, 0) == 0)
     {
         EventNotificationItem.Publish(ExchangeComponent.MessageTracing.Name, "RegionTagNonUrgent", null, msg, ResultSeverityLevel.Informational, false);
     }
 }
コード例 #2
0
ファイル: LogMonitor.cs プロジェクト: YHZX2013/exchange_diff
 private static void RaiseAlertIfHealthStateChange(ref int state, string monitorName, string error)
 {
     if (Interlocked.CompareExchange(ref state, 1, 0) == 0)
     {
         EventNotificationItem.Publish(ExchangeComponent.Name, monitorName, null, error, ResultSeverityLevel.Error, false);
     }
 }
コード例 #3
0
        public static void ReadConfiguration()
        {
            string fileLocation = "d:\\MessageTracingServiceLogs";

            ServiceLogger.ServiceLogLevel         = ServiceLogger.LogLevel.Error;
            ServiceLogger.MaximumLogAge           = TimeSpan.Parse("5.00:00:00");
            ServiceLogger.MaximumLogDirectorySize = 500000000L;
            ServiceLogger.MaximumLogFileSize      = 5000000L;
            try
            {
                fileLocation = ConfigurationManager.AppSettings["LogFilePath"].Trim();
                ServiceLogger.ServiceLogLevel         = (ServiceLogger.LogLevel)Convert.ToInt32(ConfigurationManager.AppSettings["LogLevel"]);
                ServiceLogger.MaximumLogAge           = TimeSpan.Parse(ConfigurationManager.AppSettings["LogFileMaximumLogAge"]);
                ServiceLogger.MaximumLogDirectorySize = Convert.ToInt64(ConfigurationManager.AppSettings["LogFileMaximumLogDirectorySize"]);
                ServiceLogger.MaximumLogFileSize      = Convert.ToInt64(ConfigurationManager.AppSettings["LogFileMaximumLogFileSize"]);
            }
            catch (Exception ex)
            {
                string text = string.Format("Fail to read config value, default values are used. The error is {0}", ex.ToString());
                EventLogger.Logger.LogEvent(LogUploaderEventLogConstants.Tuple_ConfigSettingNotFound, Thread.CurrentThread.Name, new object[]
                {
                    text
                });
                EventNotificationItem.Publish(ExchangeComponent.Name, "BadServiceLoggerConfig", null, text, ResultSeverityLevel.Error, false);
                if (RetryHelper.IsSystemFatal(ex))
                {
                    throw;
                }
            }
            finally
            {
                ServiceLogger.FileLocation = fileLocation;
            }
        }
        public void WriteDuplicateRuleIdAcrossRulePacksDiagnosticsInformation(int traceSourceHashCode, OrganizationId currentOrganizationId, string offendingRulePackageObjectDn1, string offendingRulePackageObjectDn2, string duplicateRuleId)
        {
            string organizationId = currentOrganizationId.ToString();

            Task.Factory.StartNew(delegate()
            {
                ExManagementApplicationLogger.LogEvent(ManagementEventLogConstants.Tuple_DuplicateDataClassificationIdAcrossRulePack, new string[]
                {
                    organizationId,
                    duplicateRuleId,
                    offendingRulePackageObjectDn1,
                    offendingRulePackageObjectDn2
                });
            });
            string eventMessage = string.Format("A duplicate data classification identifier '{1}' has been identified in objects with DN '{2}' and '{3}' under organization '{0}'.", new object[]
            {
                organizationId,
                duplicateRuleId,
                offendingRulePackageObjectDn1,
                offendingRulePackageObjectDn2
            });

            Task.Factory.StartNew(delegate()
            {
                EventNotificationItem.Publish(ClassificationDefinitionsDiagnosticsReporter.ServiceName, "ClassificationManagement", "NonUniqueDataClassificationIdentifierFound", eventMessage, ResultSeverityLevel.Warning, false);
            });
            this.dlpTracer.TraceError((long)traceSourceHashCode, eventMessage);
        }
コード例 #5
0
        protected void PublishMonitoringResult()
        {
            string name  = ExchangeComponent.SiteMailbox.Name;
            string name2 = base.GetType().Name;
            string notificationReason    = this.siteUri.AbsoluteUri.Replace('/', '\\');
            ResultSeverityLevel severity = ResultSeverityLevel.Informational;
            string message = string.Empty;

            if (this.LastError != null)
            {
                severity = ResultSeverityLevel.Error;
                message  = this.LastError.Message;
            }
            EventNotificationItem eventNotificationItem = new EventNotificationItem(name, name2, notificationReason, severity);

            eventNotificationItem.Message = message;
            try
            {
                eventNotificationItem.Publish(false);
            }
            catch (UnauthorizedAccessException exception)
            {
                ProtocolLog.LogError(ProtocolLog.Component.Monitor, this.loggingContext, "PublishMonitoringResult failed with UnauthorizedAccessException", exception);
            }
            catch (EventLogNotFoundException exception2)
            {
                ProtocolLog.LogError(ProtocolLog.Component.Monitor, this.loggingContext, "PublishMonitoringResult failed with EventLogNotFoundException", exception2);
            }
        }
コード例 #6
0
        public static void PublishMonitoringEventNotification(string serviceName, string component, string message, ResultSeverityLevel severity)
        {
            if (Globals.IsPreCheckinApp)
            {
                return;
            }
            if (component == Feature.InstantMessage.ToString())
            {
                if (severity == ResultSeverityLevel.Error || severity == ResultSeverityLevel.Critical)
                {
                    ExTraceGlobals.InstantMessagingTracer.TraceError(0L, message);
                }
                else if (severity == ResultSeverityLevel.Warning)
                {
                    ExTraceGlobals.InstantMessagingTracer.TraceWarning(0L, message);
                }
                else
                {
                    ExTraceGlobals.InstantMessagingTracer.TraceInformation(0, 0L, message);
                }
            }
            EventNotificationItem eventNotificationItem = new EventNotificationItem(serviceName, component, null, message, severity);

            eventNotificationItem.Publish(false);
        }
コード例 #7
0
 private static void PublishErrorEvent(string errMsg)
 {
     if (!errMsg.Contains("ProtocolError"))
     {
         EventNotificationItem.Publish(ExchangeComponent.FfoUmc.Name, EOPRecipient.PswsFailureMonitor, null, errMsg, ResultSeverityLevel.Error, false);
     }
 }
コード例 #8
0
        protected void PublishMonitoringResult(int numberofAttemptsAfterLastSuccess, ExDateTime firstFailedSyncTimeAfterLastSuccess, ExDateTime lastFailedSyncTime)
        {
            TimeSpan t = lastFailedSyncTime - firstFailedSyncTimeAfterLastSuccess;

            if (numberofAttemptsAfterLastSuccess >= FolderTaskLogger.MinNumberOfFailedSyncAttemptsForAlert && t >= FolderTaskLogger.MinDurationOfSyncFailureForAlert)
            {
                string name      = ExchangeComponent.PublicFolders.Name;
                string component = "PublicFolderMailboxSync";
                string empty     = string.Empty;
                EventNotificationItem eventNotificationItem = new EventNotificationItem(name, component, empty, ResultSeverityLevel.Error);
                eventNotificationItem.StateAttribute1 = this.storeSession.MailboxGuid.ToString();
                eventNotificationItem.StateAttribute2 = this.storeSession.MdbGuid.ToString();
                eventNotificationItem.StateAttribute3 = ((this.storeSession.OrganizationId != null && this.storeSession.OrganizationId.OrganizationalUnit != null) ? this.storeSession.OrganizationId.OrganizationalUnit.Name.ToString() : string.Empty);
                if (this.LastError == null)
                {
                    eventNotificationItem.Message = "No LastError but failing for at least this long: " + FolderTaskLogger.MinDurationOfSyncFailureForAlert;
                }
                else
                {
                    eventNotificationItem.Message = FolderTaskLoggerBase.GetExceptionLogString(this.LastError, FolderTaskLoggerBase.ExceptionLogOption.All);
                }
                try
                {
                    eventNotificationItem.Publish(false);
                }
                catch (UnauthorizedAccessException exception)
                {
                    this.LogEvent(LogEventType.Warning, string.Format("PublishMonitoringResult: Failed with exception {0}", FolderTaskLoggerBase.GetExceptionLogString(exception, FolderTaskLoggerBase.ExceptionLogOption.All)));
                }
                catch (EventLogNotFoundException exception2)
                {
                    this.LogEvent(LogEventType.Warning, string.Format("PublishMonitoringResult: Failed with exception {0}", FolderTaskLoggerBase.GetExceptionLogString(exception2, FolderTaskLoggerBase.ExceptionLogOption.All)));
                }
            }
        }
コード例 #9
0
        private static SharepointValidator Create(IConfigurationSession configurationSession, ADObjectId executingUserId, Task.TaskErrorLoggingDelegate writeErrorDelegate, Action <LocalizedString> writeWarningDelegate, Func <LocalizedString, bool> shouldContinueDelegate, string logTag, SourceValidator.Clients client, int existingSitesCount, ExecutionLog logger)
        {
            ArgumentValidator.ThrowIfNull("configurationSession", configurationSession);
            Uri            uri            = null;
            Uri            uri2           = null;
            OrganizationId organizationId = configurationSession.GetOrgContainer().OrganizationId;

            UnifiedPolicyConfiguration.GetInstance().GetTenantSharePointUrls(configurationSession, out uri, out uri2);
            if (uri == null)
            {
                EventNotificationItem.Publish(ExchangeComponent.UnifiedComplianceSourceValidation.Name, "SharepointValidatorUnexpectedError", client.ToString(), string.Format("Tenant {0}, Error:{1}", organizationId.ToExternalDirectoryOrganizationId(), Strings.FailedToGetSpSiteUrlForTenant), ResultSeverityLevel.Error, false);
                throw new SpValidatorException(Strings.FailedToGetSpSiteUrlForTenant);
            }
            ADUser actAsUser = null;

            if (executingUserId != null)
            {
                ADSessionSettings sessionSettings = ADSessionSettings.FromExternalDirectoryOrganizationId(new Guid(organizationId.ToExternalDirectoryOrganizationId()));
                IRecipientSession tenantOrRootOrgRecipientSession = DirectorySessionFactory.Default.GetTenantOrRootOrgRecipientSession(ConsistencyMode.IgnoreInvalid, sessionSettings, 520, "Create", "f:\\15.00.1497\\sources\\dev\\Management\\src\\Management\\transport\\UnifiedPolicy\\Validators\\SharepointValidator.cs");
                actAsUser = tenantOrRootOrgRecipientSession.FindADUserByObjectId(executingUserId);
            }
            ICredentials credentials = UnifiedPolicyConfiguration.GetInstance().GetCredentials(configurationSession, actAsUser);

            if (credentials == null)
            {
                EventNotificationItem.Publish(ExchangeComponent.UnifiedComplianceSourceValidation.Name, "SharepointValidatorUnexpectedError", client.ToString(), string.Format("Tenant {0}, Error:{1}", organizationId.ToExternalDirectoryOrganizationId(), Strings.FailedToGetCredentialsForTenant), ResultSeverityLevel.Error, false);
                throw new SpValidatorException(Strings.FailedToGetCredentialsForTenant);
            }
            int maxLimitFromConfig = SourceValidator.GetMaxLimitFromConfig("MaxSitesLimit", 100, existingSitesCount);

            return(new SharepointValidator(uri, credentials, executingUserId != null, writeErrorDelegate, writeWarningDelegate, shouldContinueDelegate, maxLimitFromConfig, logger, logTag, organizationId.ToExternalDirectoryOrganizationId(), client));
        }
コード例 #10
0
 private void PublishErrorEvent(string error)
 {
     if (Interlocked.CompareExchange(ref RegionTagRetriever.isGlsOk, 0, 1) == 1)
     {
         EventNotificationItem.Publish(ExchangeComponent.MessageTracing.Name, "RegionTagNonUrgent", null, string.Format("{0}\nThe caller id is {1}", error, this.glsCallerId.CallerIdString), ResultSeverityLevel.Error, false);
     }
 }
コード例 #11
0
 internal void SetHealthGreen(string monitor, string msg)
 {
     FaultInjection.FaultInjectionTracer.TraceTest(39836U);
     this.Checkpoint(msg);
     this.Trace(SystemProbe.Status.Pass, string.Empty);
     EventNotificationItem.Publish(this.ComponentName, monitor, null, msg, ResultSeverityLevel.Informational, false);
 }
コード例 #12
0
        public void PublishEvent(string componentName, string organization, string context, Exception exception)
        {
            ArgumentValidator.ThrowIfNullOrEmpty("componentName", componentName);
            ArgumentValidator.ThrowIfNullOrEmpty("organization", organization);
            string arg = (exception != null) ? exception.ToString() : "<>";

            EventNotificationItem.Publish(ExchangeComponent.UnifiedPolicy.Name, componentName, null, string.Format("Policy sync issues identified for Tenant {0}.\r\nContext: {1}.\r\nError: {2}.", organization, context, arg), ResultSeverityLevel.Error, false);
        }
コード例 #13
0
ファイル: EventLogger.cs プロジェクト: YHZX2013/exchange_diff
 public static void LogCorruptDataIgnored(Type queryType, Exception exception)
 {
     EventLogger.LogEvent(FfoHygineDataProviderEventLogConstants.Tuple_WebstoreDataProviderCorruptDataIgnored, new object[]
     {
         queryType.Name,
         exception
     });
     EventNotificationItem.Publish(ExchangeComponent.Dal.Name, "WebstoreDataProvider.CorruptDataIgnored", null, string.Format("The Webstore Data Provider ignored corrupt data processing a query for {0} that triggered the following exception: {1}", queryType.Name, exception), ResultSeverityLevel.Error, false);
 }
コード例 #14
0
ファイル: EventLogger.cs プロジェクト: YHZX2013/exchange_diff
 public static void LogBloomFilterDataProviderFailureLoadingFile(Type dataType, Exception ex)
 {
     EventLogger.LogEvent(FfoHygineDataProviderEventLogConstants.Tuple_BloomFilterDataProviderFailureLoadingFile, new object[]
     {
         dataType.Name,
         ex
     });
     EventNotificationItem.Publish(ExchangeComponent.Dal.Name, "CompositeDataProvider.ErrorLoadingNewBloomFile", null, string.Format("The CompositeDataProvider encountered an error swapping to a new {0} bloom filter file: {1}", dataType.Name, ex), ResultSeverityLevel.Error, false);
 }
コード例 #15
0
ファイル: EventLogger.cs プロジェクト: YHZX2013/exchange_diff
 public static void LogStaleTracerTokenDetected(Type dataType, string expectedTracer)
 {
     EventLogger.LogPeriodicEvent(FfoHygineDataProviderEventLogConstants.Tuple_BloomFilterDataProviderStaleTracerTokenDetected, dataType.Name + expectedTracer, new object[]
     {
         dataType.Name,
         expectedTracer
     });
     EventNotificationItem.Publish(ExchangeComponent.Dal.Name, "CompositeDataProvider.StaleTracerTokenDetected", null, string.Format("The CompositeDataProvider encountered a stale tracer token in the {0} bloom filter file. Expected to find key '{1}'.", dataType.Name, expectedTracer), ResultSeverityLevel.Error, false);
 }
コード例 #16
0
ファイル: EventLogger.cs プロジェクト: YHZX2013/exchange_diff
 public static void LogInMemoryCacheFatalErrorEncounteredDuringPriming(string cache, Exception fatalError)
 {
     EventLogger.LogEvent(FfoHygineDataProviderEventLogConstants.Tuple_InMemoryCachePrimingComplete, new object[]
     {
         cache,
         fatalError
     });
     EventNotificationItem.Publish(ExchangeComponent.Dal.Name, "InMemoryCache.FatalErrorDuringPriming", null, string.Format("The in-memory cache for {0} data encountered a fatal error during priming of tenant data: {1}", cache, fatalError), ResultSeverityLevel.Error, false);
 }
コード例 #17
0
 // Token: 0x06001305 RID: 4869 RVA: 0x0004CEEC File Offset: 0x0004B0EC
 public void RaiseRedEvent(string failureMsg)
 {
     if (ExDateTime.Now - this.lastRedEventRaisedTime > this.maxRedFreq || this.lastGreenEventRaisedTime > this.lastRedEventRaisedTime)
     {
         string text = string.Format("ADHealthReporter: AD access is failing: {0}", failureMsg);
         EventNotificationItem eventNotificationItem = new EventNotificationItem("MSExchangeRepl", "MonitoringADConfigManager", "ADConfigQueryStatus", text, text, ResultSeverityLevel.Critical);
         eventNotificationItem.Publish(false);
         this.lastRedEventRaisedTime = ExDateTime.Now;
     }
 }
コード例 #18
0
ファイル: EventLogger.cs プロジェクト: YHZX2013/exchange_diff
        public static void LogCompositeDataProviderCacheUnhealthy(string cacheName)
        {
            EventLogger.LogEvent(FfoHygineDataProviderEventLogConstants.Tuple_CompositeDataProviderCacheUnhealthy, new object[]
            {
                cacheName
            });
            string notificationReason = string.Format("The Cache Data Provider determined priming info to be unhealthy for type {0}.", cacheName);

            EventNotificationItem.Publish(ExchangeComponent.Dal.Name, "FfoCacheDataProvider.GetPrimingInfoUnhealthy", null, notificationReason, ResultSeverityLevel.Error, false);
        }
コード例 #19
0
ファイル: EventLogger.cs プロジェクト: YHZX2013/exchange_diff
 public static void LogInMemoryCacheFatalErrorEncounteredDuringRefresh(string cache, object itemKey, Exception fatalError)
 {
     EventLogger.LogEvent(FfoHygineDataProviderEventLogConstants.Tuple_InMemoryCacheFatalErrorEncounteredDuringRefresh, new object[]
     {
         cache,
         itemKey,
         fatalError
     });
     EventNotificationItem.Publish(ExchangeComponent.Dal.Name, "InMemoryCache.FatalErrorDuringRefresh", null, string.Format("The in-memory cache for {0} data encountered a fatal error during refresh of the item with key {1}: {2}", cache, itemKey, fatalError), ResultSeverityLevel.Error, false);
 }
コード例 #20
0
ファイル: EventLogger.cs プロジェクト: YHZX2013/exchange_diff
        public static void LogNoConnectionAvailException(Exception exception)
        {
            EventLogger.LogEvent(FfoHygineDataProviderEventLogConstants.Tuple_WebstoreDataProviderConnectionError, new object[]
            {
                exception
            });
            string notificationReason = string.Format("The Webstore Data provider is encountered a no connection exception and failing over to the database in other Datacenter: {0}.", exception);

            EventNotificationItem.Publish(ExchangeComponent.Dal.Name, "FfoWebstoreDataProvider.CrossDatacenterFailover", null, notificationReason, ResultSeverityLevel.Error, false);
        }
コード例 #21
0
 public void Notify(EventNotificationEntry entry, EventNotificationPropertyBag propertyBag)
 {
     if (entry == 4)
     {
         string text = (propertyBag != null) ? propertyBag.ObjectGuid : string.Empty;
         StorageGlobals.EventLogger.LogEvent(this.clientContext.OrgId, StorageEventLogConstants.Tuple_UnknownTemplateInPublishingLicense, text, text);
         string notificationReason = string.Format("Exchange could not match the RMS template with Id {0} specified in the publishing license against templates configured for this tenant.", text);
         EventNotificationItem.Publish(ExchangeComponent.Rms.Name, "UnknownTemplateInPublishingLicense", null, notificationReason, ResultSeverityLevel.Warning, false);
     }
 }
コード例 #22
0
        // Token: 0x0600000B RID: 11 RVA: 0x000027EC File Offset: 0x000009EC
        private static void PublishServiceStartFailureNotification(string exceptionMessage = null)
        {
            string text = "Mailbox Transport Delivery service did not successfully initialize.";

            if (!string.IsNullOrEmpty(exceptionMessage))
            {
                text += string.Format(" Exception was: {0}", exceptionMessage);
            }
            EventNotificationItem.Publish(ExchangeComponent.MailboxTransport.Name, "DeliveryServiceStartFailure", null, text, ResultSeverityLevel.Warning, false);
        }
コード例 #23
0
 // Token: 0x06001306 RID: 4870 RVA: 0x0004CF60 File Offset: 0x0004B160
 public void RaiseGreenEvent()
 {
     if (ExDateTime.Now - this.lastGreenEventRaisedTime > this.maxGreenFreq)
     {
         string text = "ADHealthReporter: AD access is healthy.";
         EventNotificationItem eventNotificationItem = new EventNotificationItem("MSExchangeRepl", "MonitoringADConfigManager", "ADConfigQueryStatus", text, text, ResultSeverityLevel.Informational);
         eventNotificationItem.Publish(false);
         this.lastGreenEventRaisedTime = ExDateTime.Now;
     }
 }
コード例 #24
0
 internal LogFileRange ProcessOneWatermark(string line)
 {
     ArgumentValidator.ThrowIfNull("line", line);
     try
     {
         string       fileRangeFromWatermark = WatermarkFile.GetFileRangeFromWatermark(line);
         LogFileRange logFileRange           = LogFileRange.Parse(fileRangeFromWatermark);
         logFileRange.ProcessingStatus = ProcessingStatus.CompletedProcessing;
         lock (this.blocksProcessedLock)
         {
             if (!this.blocksProcessed.ContainsKey(logFileRange.StartOffset))
             {
                 this.AddRangeToProcessed(logFileRange);
                 return(logFileRange);
             }
             EventLogger.Logger.LogEvent(LogUploaderEventLogConstants.Tuple_OverlappingLogRangeInWatermarkFile, this.WatermarkFileFullName, new object[]
             {
                 this.WatermarkFileFullName,
                 logFileRange.StartOffset,
                 logFileRange.EndOffset,
                 logFileRange.StartOffset,
                 this.blocksProcessed[logFileRange.StartOffset].EndOffset
             });
             string text = string.Format("There are overlapping log ranges in watermark file {0}: ({1}, {2}), ({3}, {4}).", new object[]
             {
                 this.WatermarkFileFullName,
                 logFileRange.StartOffset,
                 logFileRange.EndOffset,
                 logFileRange.StartOffset,
                 this.blocksProcessed[logFileRange.StartOffset].EndOffset
             });
             if (Interlocked.CompareExchange(ref WatermarkFile.overlappingWatermarksInWatermarkFile, 1, 0) == 0)
             {
                 EventNotificationItem.Publish(ExchangeComponent.Name, "OverlappingWatermarkRecordsInFile", null, text, ResultSeverityLevel.Error, false);
             }
             ServiceLogger.LogError(ServiceLogger.Component.WatermarkFile, (LogUploaderEventLogConstants.Message) 3221231476U, text, this.instance, this.WatermarkFileFullName);
         }
     }
     catch (MalformedLogRangeLineException ex)
     {
         string text2 = string.Format("Failed to parse watermark from {0}: {1}", this.watermarkFullFileName, ex.Message);
         ExTraceGlobals.ReaderTracer.TraceError((long)this.GetHashCode(), text2);
         EventLogger.Logger.LogEvent(LogUploaderEventLogConstants.Tuple_WatermarkFileParseException, this.watermarkFullFileName, new object[]
         {
             this.watermarkFullFileName,
             ex.Message
         });
         if (Interlocked.CompareExchange(ref WatermarkFile.watermarkParseError, 1, 0) == 0)
         {
             EventNotificationItem.Publish(ExchangeComponent.Name, "MalformedWatermarkRecordError", null, text2, ResultSeverityLevel.Warning, false);
         }
         ServiceLogger.LogError(ServiceLogger.Component.WatermarkFile, (LogUploaderEventLogConstants.Message) 3221231475U, ex.Message, this.instance, this.watermarkFullFileName);
     }
     return(null);
 }
コード例 #25
0
ファイル: EventLogger.cs プロジェクト: YHZX2013/exchange_diff
        public static void LogCacheDataProviderGetPrimingInfoFailure(string cacheName, Exception exception)
        {
            EventLogger.LogEvent(FfoHygineDataProviderEventLogConstants.Tuple_CacheDataProviderGetPrimingInfoFailure, new object[]
            {
                cacheName,
                exception
            });
            string notificationReason = string.Format("The Cache Data Provider unable to determine priming info for type {0}. Error: {1}.", cacheName, exception);

            EventNotificationItem.Publish(ExchangeComponent.Dal.Name, "FfoCacheDataProvider.GetPrimingInfoFailure", null, notificationReason, ResultSeverityLevel.Error, false);
        }
コード例 #26
0
        // Token: 0x06000010 RID: 16 RVA: 0x00002574 File Offset: 0x00000774
        private static void LogCreateDirectoryFailedEvent(string absolutePath, string exceptionMessage)
        {
            LogSearchService.Logger.LogEvent(MSExchangeTransportLogSearchEventLogConstants.Tuple_LogSearchServiceCreateDirectoryFailed, null, new object[]
            {
                absolutePath,
                exceptionMessage
            });
            string notificationReason = string.Format("The Microsoft Exchange Transport Log Search service failed to create message tracking log directory: {0} because of error: {1}", absolutePath, exceptionMessage);

            EventNotificationItem.Publish(ExchangeComponent.Transport.Name, "TransportLogSearch", null, notificationReason, ResultSeverityLevel.Warning, false);
        }
コード例 #27
0
ファイル: EventLogger.cs プロジェクト: YHZX2013/exchange_diff
        public static void LogPartitionMapDatabaseReadError(Exception ex, string localFileName)
        {
            EventLogger.LogEvent(FfoHygineDataProviderEventLogConstants.Tuple_ErrorReadingPartitionMapFromDB, new object[]
            {
                ex.ToString(),
                localFileName
            });
            string notificationReason = string.Format("Error {0} reading Partition Map from DB. Reading Partition Map from Local File {1}", ex, localFileName);

            EventNotificationItem.Publish(ExchangeComponent.Dal.Name, "FfoWebstoreDataProvider.PartitionMapDBRead", null, notificationReason, ResultSeverityLevel.Error, false);
        }
コード例 #28
0
ファイル: EventLogger.cs プロジェクト: YHZX2013/exchange_diff
 public static void LogPolicySyncWebserviceGlsError(string operation, Workload workload, string objectType, SyncCallerContext callerContext, Exception exception)
 {
     EventNotificationItem.Publish(ExchangeComponent.Dal.Name, "PolicySyncWS.GlsError", null, string.Format("The PolicySync Webservice encountered a Gls error (operation: {0}, workload: {1}, type: {2}, context: {3}): {4}", new object[]
     {
         operation,
         workload,
         objectType,
         callerContext,
         exception
     }), ResultSeverityLevel.Error, false);
 }
コード例 #29
0
ファイル: EventLogger.cs プロジェクト: YHZX2013/exchange_diff
        public static void LogCacheProviderUnhandledException(string cacheName, Exception exception)
        {
            EventLogger.LogEvent(FfoHygineDataProviderEventLogConstants.Tuple_CacheDataProviderCallFailure, new object[]
            {
                exception,
                cacheName
            });
            string notificationReason = string.Format("The Cache Data Provider fatally failed for cache {1} with error: {0}.", exception, cacheName);

            EventNotificationItem.Publish(ExchangeComponent.Dal.Name, "FfoCacheDataProvider.UnhandledException", null, notificationReason, ResultSeverityLevel.Error, false);
        }
コード例 #30
0
ファイル: EventLogger.cs プロジェクト: YHZX2013/exchange_diff
        public static void LogCompositeDataProviderCacheFailover(string objectType, Exception exception)
        {
            EventLogger.LogEvent(FfoHygineDataProviderEventLogConstants.Tuple_CompositeDataProviderCacheFailover, new object[]
            {
                objectType,
                exception
            });
            string notificationReason = string.Format("The Composite Data provider is encountered a permanent DAL exception and failing over to the Cache for type {0}: {1}.", objectType, exception);

            EventNotificationItem.Publish(ExchangeComponent.Dal.Name, "FfoCacheDataProvider.CacheFailover", null, notificationReason, ResultSeverityLevel.Error, false);
        }