using System;
|
using System.Collections.Generic;
|
using System.Web;
|
using System.IO;
|
using System.Runtime.CompilerServices;
|
using HH.WMS.Common.External;
|
|
|
namespace HH.WMS.Common
|
{
|
public class Log
|
{
|
//在网站根目录下创建日志目录
|
/**
|
* 向日志文件写入调试信息
|
* @param className 类名
|
* @param content 写入内容
|
*/
|
public static void Debug(string className, string content)
|
{
|
WriteLog("DEBUG", className, content);
|
}
|
/**
|
* 向日志文件写入调试信息
|
* @param className 类名
|
* @param content 写入内容
|
*/
|
public static void AlgorDebug(string className, string content)
|
{
|
|
WriteAlgorLog("DEBUG", className, content);
|
}
|
|
/**
|
* 向日志文件写入运行时信息
|
* @param className 类名
|
* @param content 写入内容
|
*/
|
public static void Info(string className, string content)
|
{
|
WriteLog("INFO", className, content);
|
}
|
/**
|
* 向日志文件写入运行时信息
|
* @param className 类名
|
* @param content 写入内容
|
*/
|
public static void AlgorInfo(string className, string content)
|
{
|
WriteAlgorLog("INFO", className, content);
|
}
|
|
/// <summary>
|
/// 在global里面调用的方法里使用
|
/// </summary>
|
/// <param name="className"></param>
|
/// <param name="content"></param>
|
public static void DomainInfo(string className, string content)
|
{
|
WriteDomainLog("INFO", className, content);
|
}
|
|
/**
|
* 向日志文件写入出错信息
|
* @param className 类名
|
* @param content 写入内容
|
*/
|
public static void Error(string className, string content)
|
{
|
WriteLog("ERROR", className, content);
|
}
|
|
|
protected static void WriteDomainLog(string type, string className, string content)
|
{
|
string path = AppDomain.CurrentDomain.BaseDirectory + "/logs"; // string.Empty;
|
if (!Directory.Exists(path))//如果日志目录不存在就创建
|
{
|
Directory.CreateDirectory(path);
|
}
|
|
string time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");//获取当前系统时间
|
string filename = path + "/" + DateTime.Now.ToString("yyyy-MM-dd") + ".log";//用日期对日志文件命名
|
|
lock (fileLock)
|
{
|
//创建或打开日志文件,向日志文件末尾追加记录
|
StreamWriter mySw = File.AppendText(filename);
|
|
//向日志文件写入内容
|
string write_content = time + " " + type + " " + className + ": " + content;
|
mySw.WriteLine(write_content);
|
|
////关闭日志文件
|
mySw.Close();
|
}
|
}
|
|
/**
|
* 实际的写日志操作
|
* @param type 日志记录类型
|
* @param className 类名
|
* @param content 写入内容
|
*/
|
private static object fileLock = new object();
|
protected static void WriteLog(string type, string className, string content)
|
{
|
string path = string.Empty;
|
//HttpContext context = HttpContext.Current;
|
//if (context != null)
|
//{
|
// //Web
|
// path = HttpContext.Current.Request.PhysicalApplicationPath + "/logs";
|
//}
|
//else
|
//{
|
// //Win
|
// try
|
// {
|
// path = System.Windows.Forms.Application.StartupPath + "/logs";
|
// }
|
// catch (Exception ex)
|
// {
|
// path = "";
|
// }
|
|
//}
|
|
path = AppDomain.CurrentDomain.BaseDirectory + "/logs";
|
|
if (string.IsNullOrEmpty(path))
|
{
|
string logUrl = System.Configuration.ConfigurationManager.AppSettings["PrintLogUrl"].ToString();
|
if (!string.IsNullOrEmpty(logUrl))
|
path = logUrl + "/logs";
|
else
|
path = "C:/logs";
|
}
|
|
if (!Directory.Exists(path))//如果日志目录不存在就创建
|
{
|
Directory.CreateDirectory(path);
|
}
|
|
string time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");//获取当前系统时间
|
string filename = path + "/" + DateTime.Now.ToString("yyyy-MM-dd") + type + ".log";//用日期对日志文件命名
|
|
lock (fileLock)
|
{
|
//创建或打开日志文件,向日志文件末尾追加记录
|
StreamWriter mySw = File.AppendText(filename);
|
|
//向日志文件写入内容
|
string write_content = time + " " + type + " " + className + ": " + content;
|
mySw.WriteLine(write_content);
|
|
////关闭日志文件
|
mySw.Close();
|
}
|
}
|
protected static void WriteAlgorLog(string type, string className, string content)
|
{
|
try
|
{
|
string printLog = "";
|
string path = string.Empty;
|
HttpContext context = HttpContext.Current;
|
if (context != null)
|
{
|
//Web
|
path = HttpContext.Current.Request.PhysicalApplicationPath + "/Algorlogs";
|
printLog = System.Configuration.ConfigurationManager.AppSettings["PrintAlgorLog"].ToString();
|
}
|
else
|
{
|
//Win
|
//path = System.Windows.Forms.Application.StartupPath + "/Algorlogs";
|
printLog = System.Configuration.ConfigurationManager.AppSettings["PrintAlgorLog"].ToString();
|
}
|
if (printLog == "N")
|
{
|
return;
|
}
|
if (!Directory.Exists(path))//如果日志目录不存在就创建
|
{
|
Directory.CreateDirectory(path);
|
}
|
|
|
string time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");//获取当前系统时间
|
string filename = path + "/" + DateTime.Now.ToString("yyyy-MM-dd") + ".log";//用日期对日志文件命名
|
|
lock (fileLock)
|
{
|
//创建或打开日志文件,向日志文件末尾追加记录
|
StreamWriter mySw = File.AppendText(filename);
|
|
//向日志文件写入内容
|
string write_content = time + " " + type + " " + className + ": " + content;
|
mySw.WriteLine(write_content);
|
|
////关闭日志文件
|
mySw.Close();
|
}
|
}
|
catch (Exception ex)
|
{
|
//SysLog.Log(ex, SysLog.LogType.CodeException);
|
}
|
}
|
|
public static void Detail(string title, string content)
|
{
|
WriteLog("DETAIL", title, content);
|
}
|
|
public static void Detail(LogPara logPara, string content)
|
{
|
logPara.logPara.Push(content);
|
logPara.LogIndex++;
|
WriteLog("DETAIL", logPara.LogType + logPara.LogIndex, content);
|
}
|
|
|
public static int LogIndex = 0;
|
|
public static string LogTitle = "";
|
public static void InfoNo(string content)
|
{
|
LogIndex++;
|
Info(LogTitle + LogIndex, content);
|
}
|
|
public static void InfoNo(string title, string content)
|
{
|
LogIndex = 0;
|
LogTitle = title;
|
InfoNo(content);
|
}
|
|
public static void InfoNo(int index, string title, string content)
|
{
|
LogIndex = index;
|
LogTitle = title;
|
InfoNo(content);
|
}
|
|
}
|
}
|