12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- using System;
- using System.IO;
- using System.Text;
- namespace MediaBrowser.Common.Logging
- {
- public class FileLogger : BaseLogger, IDisposable
- {
- private string LogDirectory { get; set; }
- private string CurrentLogFile { get; set; }
- private FileStream FileStream { get; set; }
- public FileLogger(string logDirectory)
- {
- LogDirectory = logDirectory;
- }
- private void EnsureStream()
- {
- if (FileStream == null)
- {
- if (!Directory.Exists(LogDirectory))
- {
- Directory.CreateDirectory(LogDirectory);
- }
- DateTime now = DateTime.Now;
- CurrentLogFile = Path.Combine(LogDirectory, now.ToString("dMyyyy") + "-" + now.Ticks + ".log");
- FileStream = new FileStream(CurrentLogFile, FileMode.Append, FileAccess.Write, FileShare.Read);
- }
- }
- protected override void LogEntry(LogRow row)
- {
- EnsureStream();
- byte[] bytes = new UTF8Encoding().GetBytes(row.ToString() + Environment.NewLine);
- FileStream.Write(bytes, 0, bytes.Length);
- FileStream.Flush();
- }
- public void Dispose()
- {
- if (FileStream != null)
- {
- FileStream.Dispose();
- }
- }
- }
- }
|