using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace ErrorLogger
{
// ===========================================================
public class AppLog
{
private string _OutputFolder;
private string _fileName;
//
public AppLog(string OutputFolder,string prefix="OUTPUT")
{
string fileName;
fileName = prefix + "_" + this.getUserName() + "_" + this.getJulianDate() + "_" + this.getTimeStamp() + "_" + this.getRandomNumber() + ".txt";
_fileName=Path.Combine(OutputFolder,fileName);
//
_OutputFolder = OutputFolder;
}
/// <summary>
/// will log error info: DateStamp,UserName and error message
/// </summary>
/// <param name="dateStamp"></param>
/// <param name="UserName"></param>
/// <param name="ErrorMsg"></param>
/// <returns></returns>
///
// ===============================================
public string getUserName()
{
return Environment.UserName;
}
// ================================================
public string getJulianDate()
{
string value;
value = DateTime.Now.ToString("yyyyMMdd");
return value;
}
// ===============================================
public string getTimeStamp()
{
string rvalue;
rvalue=DateTime.Now.ToString("HHmmss");
return rvalue;
}
// ===============================================
public string getRandomNumber()
{
int seed = (int)DateTime.Now.Ticks;
Random rndNumber = new Random(seed);
int value = rndNumber.Next(0,10000);
string rvalue = String.Format(value.ToString(),"{0:00000}");
return rvalue;
}
// ========================================================
public bool LogEvent(DateTime dateStamp, string UserName, string ErrorMsg)
{
bool returnValue;
try
{
string output = UserName + "," + dateStamp.ToString() + "," + ErrorMsg;
using (StreamWriter sw = new StreamWriter(new FileStream(path: _fileName, mode: FileMode.Append, access: FileAccess.Write)))
{
sw.WriteLine(output);
}
returnValue = true;
}
catch (Exception )
{
returnValue = false;
}
return returnValue;
}
/// <summary>
/// wjd 4-26-2016 added overload method to capture non-fatal errors will reading the file via OpenXML
/// </summary>
/// <param name="dateStamp"></param>
/// <param name="UserName"></param>
/// <param name="ErrorMsg"></param>
/// <param name="ValidationErrors"></param>
/// <returns></returns>
///
// ============================================================================================
public bool LogEvent(DateTime dateStamp, string UserName, IEnumerable<string> ValidationErrors)
{
bool returnValue;
try
{
string output = UserName + "," + dateStamp.ToString();
using (StreamWriter sw = new StreamWriter(new FileStream(path: _fileName, mode: FileMode.Append, access: FileAccess.Write)))
{
sw.WriteLine(output);
foreach (string validationError in ValidationErrors)
{
sw.WriteLine( validationError);
}
}
returnValue = true;
}
catch (Exception ex)
{
returnValue = false;
}
return returnValue;
}
}
}
No comments:
Post a Comment