This is what I use to log everything in my programs. Yes I know there are logger extensions/addins/whatevers, but this works for me.
public static void WriteLog(string message, LogFile logType, LogLevel level, string moduleName = "", string gameName = "", string raceName = "")
{
string logFile;
string header;
DateTimeFormatInfo dtfi = new CultureInfo(currCultureInfo.ToString(), false).DateTimeFormat;
dtfi.LongTimePattern = "HH:mm:ss";
header = "[" + DateTime.Today.ToLongDateString() + " " + DateTime.Now.ToLongTimeString() + "] - ";
switch (level)
{
case LogLevel.errorLevel:
header = header + "[ERROR]: " + moduleName;
break;
case LogLevel.debugLevel:
header = header + "[DEBUG]: " + moduleName;
break;
default:
header = header + "[INFO]: " + moduleName;
break;
}
message = header + message + "\r\n";
switch (logType)
{
case LogFile.errorLog:
logFile = LogPath + @"\Error.log";
break;
case LogFile.debugLog:
logFile = LogPath + @"\Debug" + DateTime.Today.ToString("yyyymmdd") + ".log";
break;
case LogFile.gameLog:
logFile = LogPath + @"Game-" + gameName + ".log";
break;
case LogFile.raceLog:
logFile = LogPath + @"Race-" + raceName + ".log";
break;
default:
logFile = LogPath + @"\General.log";
break;
}
if (!File.Exists(logFile))
{
using (StreamWriter file = new StreamWriter(logFile))
{
file.Write(message);
}
}
else
{
using (StreamWriter file = new StreamWriter(logFile, true))
{
file.Write(message);
}
}
}