Compare commits
1 Commits
master
...
add_input_
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
90991a44d6 |
@@ -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,7 +61,7 @@ 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)
|
||||||
@@ -92,9 +84,9 @@ namespace TimberWinR.Inputs
|
|||||||
|
|
||||||
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);
|
||||||
|
|
||||||
@@ -112,13 +104,13 @@ namespace TimberWinR.Inputs
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 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,11 +130,11 @@ 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)
|
||||||
{
|
{
|
||||||
@@ -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());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user