1 Commits

Author SHA1 Message Date
Eric Fontana
90991a44d6 Removed some cleanup 2015-04-29 10:48:36 -04:00
2 changed files with 28 additions and 37 deletions

View File

@@ -30,18 +30,10 @@ namespace TimberWinR.Inputs
private static LogsFileDatabase instance; private static LogsFileDatabase instance;
private bool ExistingFile(string logName)
{
lock (_locker)
{
return ExistingFileTest(logName);
}
}
// //
// Lookup the database entry for this log file, returns null if there isnt one. // Lookup the database entry for this log file, returns null if there isnt one.
// //
private LogsFileDatabaseEntry FindFile(string logName) private LogsFileDatabaseEntry FindFileWithLock(string logName)
{ {
lock (_locker) lock (_locker)
{ {
@@ -69,12 +61,12 @@ namespace TimberWinR.Inputs
} }
} }
private LogsFileDatabaseEntry AddFileEntry(string logName) private LogsFileDatabaseEntry AddFileEntryWithLock(string logName)
{ {
var de = new LogsFileDatabaseEntry(); var de = new LogsFileDatabaseEntry();
lock (_locker) lock (_locker)
{ {
var fi = new FileInfo(logName); var fi = new FileInfo(logName);
de.FileName = logName; de.FileName = logName;
de.LogFileExists = fi.Exists; de.LogFileExists = fi.Exists;
de.Previous = ""; de.Previous = "";
@@ -82,21 +74,21 @@ namespace TimberWinR.Inputs
de.ProcessedFile = false; de.ProcessedFile = false;
de.LastPosition = fi.Length; de.LastPosition = fi.Length;
de.SampleTime = DateTime.UtcNow; de.SampleTime = DateTime.UtcNow;
de.CreationTimeUtc = fi.CreationTimeUtc; de.CreationTimeUtc = fi.CreationTimeUtc;
Entries.Add(de); Entries.Add(de);
WriteDatabaseFileNoLock(); WriteDatabaseFileNoLock();
} }
return de; return de;
} }
public static LogsFileDatabaseEntry LookupLogFile(string logName) public static LogsFileDatabaseEntry LookupLogFile(string logName)
{ {
LogsFileDatabaseEntry dbe = Instance.FindFile(logName); LogsFileDatabaseEntry dbe = Instance.FindFileWithLock(logName);
if (dbe == null) if (dbe == null)
dbe = Instance.AddFileEntry(logName); dbe = Instance.AddFileEntryWithLock(logName);
FileInfo fi = new FileInfo(logName); FileInfo fi = new FileInfo(logName);
dbe.LogFileExists = fi.Exists; dbe.LogFileExists = fi.Exists;
var creationTime = fi.CreationTimeUtc; var creationTime = fi.CreationTimeUtc;
@@ -107,18 +99,18 @@ namespace TimberWinR.Inputs
dbe.Previous = ""; dbe.Previous = "";
} }
dbe.CreationTimeUtc = creationTime; dbe.CreationTimeUtc = creationTime;
return dbe; return dbe;
} }
// Find all the non-existent entries and remove them. // Find all the non-existent entries and remove them.
private void PruneFiles() private void PruneFilesWithLock()
{ {
lock (_locker) lock (_locker)
{ {
foreach(var entry in Entries.ToList()) foreach (var entry in Entries.ToList())
{ {
FileInfo fi = new FileInfo(entry.FileName); var fi = new FileInfo(entry.FileName);
if (!fi.Exists) if (!fi.Exists)
Entries.Remove(entry); Entries.Remove(entry);
} }
@@ -130,7 +122,7 @@ namespace TimberWinR.Inputs
{ {
dbe.ProcessedFile = processedFile; dbe.ProcessedFile = processedFile;
dbe.LogFileExists = File.Exists(dbe.FileName); dbe.LogFileExists = File.Exists(dbe.FileName);
Instance.UpdateEntry(dbe, lastOffset); Instance.UpdateEntryWithLock(dbe, lastOffset);
} }
public static void Roll(LogsFileDatabaseEntry dbe) public static void Roll(LogsFileDatabaseEntry dbe)
@@ -138,20 +130,20 @@ namespace TimberWinR.Inputs
dbe.ProcessedFile = false; dbe.ProcessedFile = false;
dbe.LastPosition = 0; dbe.LastPosition = 0;
dbe.Previous = ""; dbe.Previous = "";
Instance.UpdateEntry(dbe, 0); Instance.UpdateEntryWithLock(dbe, 0);
dbe.NewFile = true; dbe.NewFile = true;
} }
private void UpdateEntry(LogsFileDatabaseEntry dbe, long lastOffset) private void UpdateEntryWithLock(LogsFileDatabaseEntry dbe, long lastOffset)
{ {
lock (_locker) lock (_locker)
{ {
var fi = new FileInfo(dbe.FileName); var fi = new FileInfo(dbe.FileName);
dbe.NewFile = !fi.Exists; dbe.NewFile = !fi.Exists;
dbe.CreationTimeUtc = fi.CreationTimeUtc; dbe.CreationTimeUtc = fi.CreationTimeUtc;
dbe.SampleTime = DateTime.UtcNow; dbe.SampleTime = DateTime.UtcNow;
dbe.LastPosition = lastOffset; dbe.LastPosition = lastOffset;
WriteDatabaseFileNoLock(); WriteDatabaseFileNoLock();
} }
} }
@@ -175,7 +167,7 @@ namespace TimberWinR.Inputs
if (instance.Entries == null) if (instance.Entries == null)
instance.Entries = new List<LogsFileDatabaseEntry>(); instance.Entries = new List<LogsFileDatabaseEntry>();
instance.PruneFiles(); instance.PruneFilesWithLock();
} }
} }
return instance; return instance;
@@ -195,18 +187,17 @@ namespace TimberWinR.Inputs
} }
catch (Exception ex) catch (Exception ex)
{ {
LogManager.GetCurrentClassLogger() LogManager.GetCurrentClassLogger().Error("Error reading database '{0}': {1}", DatabaseFileName, ex.ToString());
.Error("Error reading database '{0}': {1}", DatabaseFileName, ex.ToString());
try try
{ {
if (File.Exists(DatabaseFileName)) if (File.Exists(DatabaseFileName))
File.Delete(DatabaseFileName); File.Delete(DatabaseFileName);
LogManager.GetCurrentClassLogger().Info("Creating New Database '{0}'", DatabaseFileName); LogManager.GetCurrentClassLogger().Error("Creating New Database '{0}'", DatabaseFileName);
WriteDatabaseLock(); WriteDatabaseLock();
} }
catch (Exception ex2) catch (Exception ex2)
{ {
LogManager.GetCurrentClassLogger().Info("Error Creating New Database '{0}': {1}", DatabaseFileName, ex2.ToString()); LogManager.GetCurrentClassLogger().Error("Error Creating New Database '{0}': {1}", DatabaseFileName, ex2.ToString());
} }
} }
} }
@@ -258,7 +249,7 @@ namespace TimberWinR.Inputs
public bool NewFile { get; set; } public bool NewFile { get; set; }
public bool ProcessedFile { get; set; } public bool ProcessedFile { get; set; }
public bool LogFileExists { get; set; } public bool LogFileExists { get; set; }
public string FileName { get; set; } public string FileName { get; set; }
public DateTime CreationTimeUtc { get; set; } public DateTime CreationTimeUtc { get; set; }
public DateTime SampleTime { get; set; } public DateTime SampleTime { get; set; }
public long LastPosition { get; set; } public long LastPosition { get; set; }

View File

@@ -110,7 +110,7 @@ namespace TimberWinR.Inputs
const int bufSize = 16535; const int bufSize = 16535;
long prevLen = offset; long prevLen = offset;
FileInfo fi = new FileInfo(fileName); var fi = new FileInfo(fileName);
if (!fi.Exists) if (!fi.Exists)
return; return;
@@ -120,9 +120,9 @@ namespace TimberWinR.Inputs
{ {
stream.Seek(prevLen, SeekOrigin.Begin); stream.Seek(prevLen, SeekOrigin.Begin);
char[] buffer = new char[bufSize]; var buffer = new char[bufSize];
StringBuilder current = new StringBuilder(); var current = new StringBuilder();
using (StreamReader sr = new StreamReader(stream)) using (var sr = new StreamReader(stream))
{ {
int nRead; int nRead;
do do