System logs are often used for both Web applications and Windows Forms applications. Logs can help us track and monitor the running status of the system, detect errors in time, and output adjustment information. There are many ways to record logs, such as using text files, XML files, and databases. Using text files to record logs is one of the most common methods.
Here is a simple and practical log class that uses text files to record logs. It has the following features:
1) Different log files are generated by date every day to facilitate searching logs by date.
2) generate different files by log type, such as tracking information, warning information, and error information, and use different log files to record them. It is convenient for us to find logs of the specified type.
3) You can specify the log file folder. If no log folder is specified, the Web application is saved to the Bin folder, and the Windows Forms Application is saved to the. EXE file folder.
4) You can specify the prefix of the log file.
Public class LogManager
{
Private static string logPath = string. Empty;
/// <Summary>
/// Folder for saving logs
/// </Summary>
Public static string LogPath
{
Get
{
If (logPath = string. Empty)
{
If (System. Web. HttpContext. Current = null)
// Windows Forms Application
LogPath = AppDomain. CurrentDomain. BaseDirectory;
Else
// Web application
LogPath = AppDomain. CurrentDomain. BaseDirectory + @ "bin \";
}
Return logPath;
}
Set {logPath = value ;}
}
Private static string logFielPrefix = string. Empty;
/// <Summary>
/// Log File prefix
/// </Summary>
Public static string LogFielPrefix
{
Get {return logFielPrefix ;}
Set {logFielPrefix = value ;}
}
/// <Summary>
/// Write logs
/// </Summary>
Public static void WriteLog (string logFile, string msg)
{
Try
{
System. IO. StreamWriter sw = System. IO. File. AppendText (
LogPath + LogFielPrefix + logFile + "" +
DateTime. Now. ToString ("yyyyMMdd") + ". Log"
);
Sw. WriteLine (DateTime. Now. ToString ("yyyy-MM-dd HH: mm: ss:") + msg );
Sw. Close ();
}
Catch
{}
}
/// <Summary>
/// Write logs
/// </Summary>
Public static void WriteLog (LogFile logFile, string msg)
{
WriteLog (logFile. ToString (), msg );
}
}
/// <Summary>
/// Log Type
/// </Summary>
Public enum LogFile
{
Trace,
Warning,
Error,
SQL
}
Usage:
LogManager. LogFielPrefix = "ERP ";
LogManager. LogPath = @ "C :\";
LogManager. WriteLog (LogFile. Trace, "A test Msg .");