Ejemplo n.º 1
0
        /// <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;
        }
Ejemplo n.º 2
0
 /// <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;
        }
Ejemplo n.º 4
0
 /// <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);
 }
Ejemplo n.º 5
0
 /// <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);
     }
 }
Ejemplo n.º 6
0
 /// <summary>
 /// Writes the specified artifact.
 /// </summary>
 /// <param name="artifact">The artifact.</param>
 public abstract void Write(LogArtifact artifact);
Ejemplo n.º 7
0
 /// <summary>
 /// Pushes the artifact.
 /// </summary>
 /// <param name="artifact">The artifact.</param>
 public static void PushArtifact(LogArtifact artifact)
 {
     lock (s_loggerThreadLock)
     {
         s_artifacts.Add(artifact);
     }
 }
Ejemplo n.º 8
0
 /// <summary>
 /// Writes the specified artifacts.
 /// </summary>
 /// <param name="artifacts">The artifacts.</param>
 public override void Write(LogArtifact[] artifacts)
 {
     WriteInternal(artifacts);
 }
Ejemplo n.º 9
0
 /// <summary>
 /// Writes the specified artifact.
 /// </summary>
 /// <param name="artifact">The artifact.</param>
 public override void Write(LogArtifact artifact)
 {
     WriteInternal(artifact);
 }
Ejemplo n.º 10
0
 /// <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;
 }
Ejemplo n.º 11
0
 /// <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();
 }
Ejemplo n.º 12
0
        /// <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));
                }
            }
        }
Ejemplo n.º 13
0
 /// <summary>
 /// Writes the specified artifact.
 /// </summary>
 /// <param name="artifact">The artifact.</param>
 public override void Write(LogArtifact artifact)
 {
     m_writer.WriteLine(artifact.FormattedMessage);
 }