/// <summary> /// Gets the name of the file. /// </summary> /// <param name="severity"></param> /// <param name="timestamp"></param> /// <param name="entry"></param> /// <param name="formatParameters"></param> /// <param name="logLine"></param> /// <param name="artifactSet"></param> /// <returns></returns> public override string GetFileName(LoggerSeverity severity, DateTime timestamp, object entry, object[] formatParameters, string logLine, LogArtifact[] artifactSet) { string fileName = base.GetFileName(severity, timestamp, entry, formatParameters, logLine, artifactSet); if (Strategy != null) { fileName = Strategy.GetFileName(fileName, severity, timestamp, entry, formatParameters, logLine, artifactSet); } return fileName; }
/// <summary> /// Writes the specified artifact. /// </summary> /// <param name="artifact">The artifact.</param> public override void Write(LogArtifact artifact) { }
/// <summary> /// Gets the name of the file. /// </summary> /// <param name="fileName">Name of the file.</param> /// <param name="severity">The severity.</param> /// <param name="timestamp">The timestamp.</param> /// <param name="entry">The entry.</param> /// <param name="formatParameters">The format parameters.</param> /// <param name="logLine">The log line.</param> /// <param name="artifactSet">The artifact set.</param> /// <returns></returns> public string GetFileName(string fileName, LoggerSeverity severity, DateTime timestamp, object entry, object[] formatParameters, string logLine, LogArtifact[] artifactSet) { // First, find the largest numbered file string[] pieces = FileSystemUtilities.SplitFileIntoDirectoryAndName(fileName, true); string search = pieces[1].Replace("{0}", "*"); string[] files = Directory.GetFiles(pieces[0], search); int maxNumber = 0; // Now, build the list of numbers from the file names if (files != null) { foreach (string foundFile in files) { int foundNumber = StringUtilities.ExtractFirstNumber(Path.GetFileName(foundFile)); if (foundNumber > maxNumber) { maxNumber = foundNumber; } } } if (maxNumber == 0) { fileName = string.Format(fileName, maxNumber + 1); } else { string checkFileName = string.Format(fileName, maxNumber); // Check if this file is too big or not FileInfo info = new FileInfo(checkFileName); if (info.Exists && info.Length >= MaxFileSize) { // Increment the file number fileName = string.Format(fileName, maxNumber + 1); } else { fileName = checkFileName; } } return fileName; }
/// <summary> /// High level final log that is called with all of the detailed information /// and the final log line as the last parameter. /// </summary> /// <param name="severity">The severity.</param> /// <param name="timestamp">The timestamp.</param> /// <param name="entry">The entry.</param> /// <param name="formatParameters">The format parameters.</param> /// <param name="logLine">The log line.</param> protected virtual void DoLog(LoggerSeverity severity, DateTime timestamp, object entry, object[] formatParameters, string logLine) { LogArtifact artifact = new LogArtifact(this, severity, timestamp, entry, formatParameters, logLine); Logger.PushArtifact(artifact); }
/// <summary> /// Writes the specified artifacts. /// </summary> /// <param name="artifacts">The artifacts.</param> public virtual void Write(LogArtifact[] artifacts) { foreach (LogArtifact artifact in artifacts) { Write(artifact); } }
/// <summary> /// Writes the specified artifact. /// </summary> /// <param name="artifact">The artifact.</param> public abstract void Write(LogArtifact artifact);
/// <summary> /// Pushes the artifact. /// </summary> /// <param name="artifact">The artifact.</param> public static void PushArtifact(LogArtifact artifact) { lock (s_loggerThreadLock) { s_artifacts.Add(artifact); } }
/// <summary> /// Writes the specified artifacts. /// </summary> /// <param name="artifacts">The artifacts.</param> public override void Write(LogArtifact[] artifacts) { WriteInternal(artifacts); }
/// <summary> /// Writes the specified artifact. /// </summary> /// <param name="artifact">The artifact.</param> public override void Write(LogArtifact artifact) { WriteInternal(artifact); }
/// <summary> /// Gets the name of the file. /// </summary> /// <returns></returns> public virtual string GetFileName(LoggerSeverity severity, DateTime timestamp, object entry, object[] formatParameters, string logLine, LogArtifact[] artifactSet) { return FileName; }
/// <summary> /// Writes the specified artifact. /// </summary> /// <param name="artifact">The artifact.</param> public override void Write(LogArtifact artifact) { // should never get here throw new NotImplementedException(); }
/// <summary> /// Writes the specified artifact. /// </summary> /// <param name="artifact">The artifact.</param> public override void Write(LogArtifact artifact) { try { m_log.WriteEntry(artifact.FormattedMessage, GetEventLogEntryType(artifact.Severity)); } catch (ObjectDisposedException) { using (EventLog log = new EventLog()) { log.Source = m_log.Source; log.Log = m_log.Log; log.WriteEntry(artifact.FormattedMessage, GetEventLogEntryType(artifact.Severity)); } } }
/// <summary> /// Writes the specified artifact. /// </summary> /// <param name="artifact">The artifact.</param> public override void Write(LogArtifact artifact) { m_writer.WriteLine(artifact.FormattedMessage); }