public void SetLogFilterType(LogFilterType type) { switch (type) { case LogFilterType.NeverLog: this.filter = NeverLogFilter.GetInstance(this.logWriterFactory); break; case LogFilterType.AlwaysLog: this.filter = AlwaysLogFilter.GetInstance(this.logWriterFactory); break; case LogFilterType.Defogger: this.filter = DefoggerLogFilter.GetInstance(this.logWriterFactory, this.database); break; case LogFilterType.OpenLoop: this.filter = OpenLoopLogFilter.GetInstance(this.logWriterFactory, this.database); break; case LogFilterType.ClosedLoop: this.filter = ClosedLoopLogFilter.GetInstance(this.logWriterFactory, this.database); break; case LogFilterType.FullThrottle: this.filter = FullThrottleLogFilter.GetInstance(this.logWriterFactory, this.database); break; default: throw new InvalidOperationException("Undefined log filter type: " + type.ToString()); } // Update the InternalLogProfile this.SetProfile(this.currentProfile); }
/// <summary> /// Private constructor - use factory instead /// </summary> private SsmRecordingLogger( ParameterDatabase database, string configurationDirectory, string portName, LogWriterFactory logWriterFactory) { this.logWriterFactory = logWriterFactory; this.database = database; this.filter = NeverLogFilter.GetInstance(this.logWriterFactory); this.logger = SsmLogger.GetInstance(configurationDirectory, portName); this.logger.LogStart += this.Logger_LogStart; this.logger.LogEntry += this.Logger_LogEntry; this.logger.LogStop += this.Logger_LogStop; this.logger.LogError += this.Logger_LogError; }