示例#1
0
        /// <summary>
        ///     Initializes the <see cref="AuditLogInstance" /> class.
        /// </summary>
        static AuditLogInstance()
        {
            IList <IAuditLogWriter> auditLogWriters = new List <IAuditLogWriter>();

            try
            {
                AuditLogConfiguration auditLogConfiguration = ConfigurationSettings.GetAuditLogConfigurationSection();

                if (auditLogConfiguration?.EventLogSettings != null && auditLogConfiguration.EventLogSettings.IsEnabled)
                {
                    auditLogWriters.Add(new AuditLogEventLogWriter(EventLog.Application));
                }

                if (auditLogConfiguration?.EntityModelSettings != null && auditLogConfiguration.EntityModelSettings.IsEnabled)
                {
                    auditLogWriters.Add(new AuditLogEntityModelWriter(new AuditLogEntityModelDeleter()));
                }

                if (auditLogConfiguration?.SyslogSettings != null && auditLogConfiguration.SyslogSettings.IsEnabled && !string.IsNullOrEmpty(auditLogConfiguration.SyslogSettings.HostName) && auditLogConfiguration.SyslogSettings.Port > 0)
                {
                    IStreamProvider          tcpStreamProvider     = new TcpStreamProvider(auditLogConfiguration.SyslogSettings.HostName, auditLogConfiguration.SyslogSettings.Port, true, auditLogConfiguration.SyslogSettings.IsSecure, auditLogConfiguration.SyslogSettings.IgnoreSslErrors);
                    ISyslogMessageSerializer syslogMsgSerializer   = new SyslogMessageSerializer();
                    ISyslogMessageWriter     streamWriter          = new SyslogStreamWriter(tcpStreamProvider, syslogMsgSerializer);
                    ISyslogMessageWriter     queueingMessageWriter = new SyslogQueueingMessageWriter(streamWriter);

                    auditLogWriters.Add(new AuditLogSyslogWriter(queueingMessageWriter));
                }
            }
            catch (Exception ex)
            {
                EventLog.Application.WriteError("AuditLogInstance failed to initialize. Error: {0}.", ex.ToString());
            }

            AuditLogInstanceInternal = new AuditLog(auditLogWriters);
        }
示例#2
0
        /// <summary>
        /// Get the syslog writer.
        /// </summary>
        /// <returns>The syslog writer.</returns>
        public static IEventLogWriter GetSyslogEventLogWriter()
        {
            DiagnosticsConfiguration diagnosticsConfiguration = ConfigurationSettings.GetDiagnosticsConfigurationSection();

            EventLogSyslogSettings syslogSettings = diagnosticsConfiguration?.SyslogSettings;

            if (syslogSettings == null || !syslogSettings.IsEnabled || string.IsNullOrEmpty(syslogSettings.HostName) || syslogSettings.Port <= 0)
            {
                return(null);
            }

            int    enterpriseId    = 0;
            string applicationName = string.Empty;

            SyslogConfiguration syslogConfiguration = ConfigurationSettings.GetSyslogConfigurationSection();

            if (syslogConfiguration?.SyslogApplicationSettings != null)
            {
                enterpriseId    = syslogConfiguration.SyslogApplicationSettings.EnterpriseId;
                applicationName = syslogConfiguration.SyslogApplicationSettings.ApplicationName;
            }

            // Fallback
            if (enterpriseId == 0)
            {
                enterpriseId = SyslogReadiNowConstants.EnterpriseId;
            }

            if (string.IsNullOrEmpty(applicationName))
            {
                applicationName = SyslogReadiNowConstants.ApplicationName;
            }

            string databaseName          = string.Empty;
            string databaseServer        = string.Empty;
            var    databaseConfiguration = ConfigurationSettings.GetDatabaseConfigurationSection();

            if (databaseConfiguration?.ConnectionSettings != null)
            {
                databaseName   = databaseConfiguration.ConnectionSettings.Database;
                databaseServer = databaseConfiguration.ConnectionSettings.Server;
            }

            IStreamProvider          tcpStreamProvider     = new TcpStreamProvider(syslogSettings.HostName, syslogSettings.Port, true, syslogSettings.IsSecure, syslogSettings.IgnoreSslErrors);
            ISyslogMessageSerializer syslogMsgSerializer   = new SyslogMessageSerializer();
            ISyslogMessageWriter     streamWriter          = new SyslogStreamWriter(tcpStreamProvider, syslogMsgSerializer);
            ISyslogMessageWriter     queueingMessageWriter = new SyslogQueueingMessageWriter(streamWriter, 0);

            return(new EventLogSyslogWriter(queueingMessageWriter)
            {
                EnterpriseId = enterpriseId,
                ApplicationName = applicationName,
                SoftwareVersion = SystemInfo.PlatformVersion,
                ErrorEnabled = syslogSettings.ErrorEnabled,
                WarningEnabled = syslogSettings.WarningEnabled,
                InformationEnabled = syslogSettings.InformationEnabled,
                TraceEnabled = syslogSettings.TraceEnabled,
                InstallFolder = SystemInfo.InstallFolder,
                DatabaseName = databaseName,
                DatabaseServer = databaseServer
            });
        }