1、日志文件命名: 系统英文名 + 日期编码 + 后缀(.log)
2、文件路径可配置
3、方便调用、多系统公用此模块
4、通过日志快速找到程序运行错误,为开发人员调试、维护系统提供帮助
5、大家可以根据需要进行扩展,如 命名的扩展功能。
具体实现:
一、利用web.config进行配置 [TOP]
<appSettings>
<add key="SystemName" value="HR" /> <!--系统英文名称-->
<add key="LogFilePath" value="C:/Log/" /> <!--日志文件存放目录-->
</appSettings>
二、通用Log类的具体实现 [TOP]
读取配置信息的类:
using System;
namespace Utility.Web
{
/// <summary>
/// Config 的摘要说明。
/// </summary>
public class Config
{
public Config()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
/// <summary>
/// 系统名称(English)
/// </summary>
public static string SystemName
{
get
{
return System.Configuration.ConfigurationSettings.AppSettings["SystemName"].ToString();
}
}
/// <summary>
/// 日志文件存放路径
/// </summary>
public static string LogFilePath
{
get
{
return System.Configuration.ConfigurationSettings.AppSettings["LogFilePath"].ToString();
}
}
}//
}//
日志操作类:
using System;
using System.IO;
namespace Utility
{
/// <summary>
/// Log 的摘要说明。
/// </summary>
public class Log
{
private static string filePath;
/// <summary>
/// 取得日志文件路径及名称 = 系统名称+日期
/// </summary>
/// <returns></returns>
private static string GetLogFilePath()
{
string _filePath = Utility.Web.Config.LogFilePath;
_filePath += Utility.Web.Config.SystemName;
_filePath += System.DateTime.Now.Year.ToString();
_filePath += System.DateTime.Now.Month.ToString().Length<2?("0"+System.DateTime.Now.Month.ToString()):System.DateTime.Now.Month.ToString();
_filePath += System.DateTime.Now.Day.ToString().Length<2?("0"+System.DateTime.Now.Day.ToString()):System.DateTime.Now.Day.ToString();
_filePath += ".log";
return _filePath;
}
/// <summary>
/// 写日志
/// </summary>
/// <param name="componentName">内容名称</param>
/// <param name="message">消息</param>
public static void Write(string componentName,string message)
{
filePath = GetLogFilePath();
try
{
FileStream fs = new FileStream(filePath,FileMode.Append);
StreamWriter sw = new StreamWriter(fs);
sw.WriteLine("["+System.DateTime.Now.ToLongTimeString()+"] [Debug] ["+componentName+"]");
sw.WriteLine("Msg: "+message);
sw.WriteLine();
sw.Close();
}
catch(Exception ex)
{
Console.WriteLine("[Debug] [Utility.Log.Write()]");
Console.WriteLine("Ex: "+ex.Message);
}
}
}//
}//
三、如何使用? [TOP]
try
{
//程序代码
}
catch(Exception ex)
{
Utility.Log.Write("功能模块",ex.Message);
}
四、注意事项 [TOP]
日志存放路径必须确保ASP.NET 程序能够读写,如果你的磁盘格式为NTFS的,那么就需要设置了。。。