C# 实现本地化日志管理

1、新建一个类库解决方案 CommnoLog
2、新建两个文件夹
2.1FileUtil.cs 代码如下
public static class FileUtil
{
/// <summary>
/// 追加内容到指定文件中
/// </summary>
/// <param name="filePath"></param>
/// <param name="content"></param>
public static void WriteAppend(string filePath, string content)
{
WriteAppend(filePath, new string[] { content });
}
public static void WriteAppend(string filePath, string[] contents)
{
//System.IO.StreamWriter sr = new System.IO.StreamWriter(filePath, true);
//foreach (string c in contents)
//{
// sr.WriteLine(c);
//}
//sr.Flush();
//sr.Close();
using (FileStream fs = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.Write, FileShare.ReadWrite))
{
fs.Seek(fs.Length, SeekOrigin.Current);
string content = String.Join(Environment.NewLine, contents) + Environment.NewLine;
byte[] data = System.Text.Encoding.UTF8.GetBytes(content);
fs.Write(data, 0, data.Length);
fs.Close();
}
}
}
文件夹2、
2.1 Ilog 接口
public interface ILog
{
bool IsDebugEnabled { get; }
bool IsErrorEnabled { get; }
bool IsFatalEnabled { get; }
bool IsInfoEnabled { get; }
bool IsWarnEnabled { get; }
void Debug(bool isWriteFile, object message);
void Debug(bool isWriteFile, object message, Exception exception);
void DebugFormat(bool isWriteFile, string format, object arg0);
void DebugFormat(bool isWriteFile, string format, params object[] args);
void DebugFormat(bool isWriteFile, IFormatProvider provider, string format, params object[] args);
void DebugFormat(bool isWriteFile, string format, object arg0, object arg1);
void DebugFormat(bool isWriteFile, string format, object arg0, object arg1, object arg2);
void Error(bool isWriteFile, object message);
void Error(bool isWriteFile, object message, Exception exception);
void ErrorFormat(bool isWriteFile, string format, object arg0);
void ErrorFormat(bool isWriteFile, string format, params object[] args);
void ErrorFormat(bool isWriteFile, IFormatProvider provider, string format, params object[] args);
void ErrorFormat(bool isWriteFile, string format, object arg0, object arg1);
void ErrorFormat(bool isWriteFile, string format, object arg0, object arg1, object arg2);
void Fatal(bool isWriteFile, object message);
void Fatal(bool isWriteFile, object message, Exception exception);
void FatalFormat(bool isWriteFile, string format, object arg0);
void FatalFormat(bool isWriteFile, string format, params object[] args);
void FatalFormat(bool isWriteFile, IFormatProvider provider, string format, params object[] args);
void FatalFormat(bool isWriteFile, string format, object arg0, object arg1);
void FatalFormat(bool isWriteFile, string format, object arg0, object arg1, object arg2);
void Info(bool isWriteFile, object message);
void Info(bool isWriteFile, object message, Exception exception);
void InfoFormat(bool isWriteFile, string format, object arg0);
void InfoFormat(bool isWriteFile, string format, params object[] args);
void InfoFormat(bool isWriteFile, IFormatProvider provider, string format, params object[] args);
void InfoFormat(bool isWriteFile, string format, object arg0, object arg1);
void InfoFormat(bool isWriteFile, string format, object arg0, object arg1, object arg2);
void Warn(bool isWriteFile, object message);
void Warn(bool isWriteFile, object message, Exception exception);
void WarnFormat(bool isWriteFile, string format, object arg0);
void WarnFormat(bool isWriteFile, string format, params object[] args);
void WarnFormat(bool isWriteFile, IFormatProvider provider, string format, params object[] args);
void WarnFormat(bool isWriteFile, string format, object arg0, object arg1);
void WarnFormat(bool isWriteFile, string format, object arg0, object arg1, object arg2);
}
//新建工厂代理类接口
public interface ILogFactory
{
ILog GetLog(string name);
}
、、实现 ILog接口
public class Log : ILog
{
private string m_Name;
private const string m_MessageTemplate = "{0}-{1}: {2}";
private const string m_Debug = "DEBUG";
private const string m_Error = "ERROR";
private const string m_Fatal = "FATAL";
private const string m_Info = "INFO";
private const string m_Warn = "WARN";
public bool isWriteFile = true;
/// <summary>
/// Initializes a new instance of the <see cref="Log"/> class.
/// </summary>
/// <param name="name">The name.</param>
public Log(string name)
{
m_Name = name;
}
/// <summary>
/// Gets a value indicating whether this instance is debug enabled.
/// </summary>
/// <value>
/// <c>true</c> if this instance is debug enabled; otherwise, <c>false</c>.
/// </value>
public bool IsDebugEnabled
{
get { return true; }
}
/// <summary>
/// Gets a value indicating whether this instance is error enabled.
/// </summary>
/// <value>
/// <c>true</c> if this instance is error enabled; otherwise, <c>false</c>.
/// </value>
public bool IsErrorEnabled
{
get { return true; }
}
/// <summary>
/// Gets a value indicating whether this instance is fatal enabled.
/// </summary>
/// <value>
/// <c>true</c> if this instance is fatal enabled; otherwise, <c>false</c>.
/// </value>
public bool IsFatalEnabled
{
get { return true; }
}
/// <summary>
/// Gets a value indicating whether this instance is info enabled.
/// </summary>
/// <value>
/// <c>true</c> if this instance is info enabled; otherwise, <c>false</c>.
/// </value>
public bool IsInfoEnabled
{
get { return true; }
}
/// <summary>
/// Gets a value indicating whether this instance is warn enabled.
/// </summary>
/// <value>
/// <c>true</c> if this instance is warn enabled; otherwise, <c>false</c>.
/// </value>
public bool IsWarnEnabled
{
get { return true; }
}
public string GetDataTimeLog(string log)
{
return String.Format("[{0}] {1}", DateTime.Now.ToString("yy-MM-dd HH:mm:ss"), log);
}
/// <summary>
/// Logs the debug message.
/// </summary>
/// <param name="isWriteFile"></param>
/// <param name="message">The message.</param>
public void Debug(bool isWriteFile, object message)
{
string log = GetDataTimeLog(message.ToString());
Console.WriteLine(m_MessageTemplate, m_Name, m_Debug, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Debug, log);
}
}
/// <summary>
/// Logs the debug message.
/// </summary>
/// <param name="isWriteFile"></param>
/// <param name="message">The message.</param>
/// <param name="exception">The exception.</param>
public void Debug(bool isWriteFile, object message, Exception exception)
{
string log = GetDataTimeLog(message + Environment.NewLine + exception.Message + exception.StackTrace);
Console.WriteLine(m_MessageTemplate, m_Name, m_Debug, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Debug, log);
}
}
/// <summary>
/// Logs the debug message.
/// </summary>
/// <param name="isWriteFile"></param>
/// <param name="format">The format.</param>
/// <param name="arg0">The arg0.</param>
public void DebugFormat(bool isWriteFile, string format, object arg0)
{
string log = GetDataTimeLog(string.Format(format, arg0));
Console.WriteLine(m_MessageTemplate, m_Name, m_Debug, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Debug, log);
}
}
/// <summary>
/// Logs the debug message.
/// </summary>
/// <param name="isWriteFile"></param>
/// <param name="format">The format.</param>
/// <param name="args">The args.</param>
public void DebugFormat(bool isWriteFile, string format, params object[] args)
{
string log = GetDataTimeLog(string.Format(format, args));
Console.WriteLine(m_MessageTemplate, m_Name, m_Debug, string.Format(format, args));
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Debug, log);
}
}
/// <summary>
/// Logs the debug message.
/// </summary>
/// <param name="isWriteFile"></param>
/// <param name="provider">The provider.</param>
/// <param name="format">The format.</param>
/// <param name="args">The args.</param>
public void DebugFormat(bool isWriteFile, IFormatProvider provider, string format, params object[] args)
{
string log = GetDataTimeLog(string.Format(format, args));
Console.WriteLine(m_MessageTemplate, m_Name, m_Debug, string.Format(provider, format, args));
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Debug, log);
}
}
/// <summary>
/// Logs the debug message.
/// </summary>
/// <param name="isWriteFile"></param>
/// <param name="format">The format.</param>
/// <param name="arg0">The arg0.</param>
/// <param name="arg1">The arg1.</param>
public void DebugFormat(bool isWriteFile, string format, object arg0, object arg1)
{
string log = GetDataTimeLog(string.Format(format, arg0, arg1));
Console.WriteLine(m_MessageTemplate, m_Name, m_Debug, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Debug, log);
}
}
/// <summary>
/// Logs the debug message.
/// </summary>
/// <param name="isWriteFile"></param>
/// <param name="format">The format.</param>
/// <param name="arg0">The arg0.</param>
/// <param name="arg1">The arg1.</param>
/// <param name="arg2">The arg2.</param>
public void DebugFormat(bool isWriteFile, string format, object arg0, object arg1, object arg2)
{
string log = GetDataTimeLog(string.Format(format, arg0, arg1, arg2));
Console.WriteLine(m_MessageTemplate, m_Name, m_Debug, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Debug, log);
}
}
/// <summary>
/// Logs the error message.
/// </summary>
/// <param name="isWriteFile"></param>
/// <param name="message">The message.</param>
public void Error(bool isWriteFile, object message)
{
string log = GetDataTimeLog(message.ToString());
Console.WriteLine(m_MessageTemplate, m_Name, m_Error, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Error, log);
}
}
/// <summary>
/// Logs the error message.
/// </summary>
/// <param name="isWriteFile"></param>
/// <param name="message">The message.</param>
/// <param name="exception">The exception.</param>
public void Error(bool isWriteFile, object message, Exception exception)
{
string log = GetDataTimeLog(message + Environment.NewLine + exception.Message + exception.StackTrace);
Console.WriteLine(m_MessageTemplate, m_Name, m_Error, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Error, log);
}
}
/// <summary>
/// Logs the error message.
/// </summary>
/// <param name="isWriteFile"></param>
/// <param name="format">The format.</param>
/// <param name="arg0">The arg0.</param>
public void ErrorFormat(bool isWriteFile, string format, object arg0)
{
string log = GetDataTimeLog(string.Format(format, arg0));
Console.WriteLine(m_MessageTemplate, m_Name, m_Error, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Error, log);
}
}
/// <summary>
/// Logs the error message.
/// </summary>
/// <param name="isWriteFile"></param>
/// <param name="format">The format.</param>
/// <param name="args">The args.</param>
public void ErrorFormat(bool isWriteFile, string format, params object[] args)
{
string log = GetDataTimeLog(string.Format(format, args));
Console.WriteLine(m_MessageTemplate, m_Name, m_Error, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Error, log);
}
}
/// <summary>
/// Logs the error message.
/// </summary>
/// <param name="isWriteFile"></param>
/// <param name="provider">The provider.</param>
/// <param name="format">The format.</param>
/// <param name="args">The args.</param>
public void ErrorFormat(bool isWriteFile, IFormatProvider provider, string format, params object[] args)
{
string log = GetDataTimeLog(string.Format(provider, format, args));
Console.WriteLine(m_MessageTemplate, m_Name, m_Error, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Error, log);
}
}
/// <summary>
/// Logs the error message.
/// </summary>
/// <param name="isWriteFile"></param>
/// <param name="format">The format.</param>
/// <param name="arg0">The arg0.</param>
/// <param name="arg1">The arg1.</param>
public void ErrorFormat(bool isWriteFile, string format, object arg0, object arg1)
{
string log = GetDataTimeLog(string.Format(format, arg0, arg1));
Console.WriteLine(m_MessageTemplate, m_Name, m_Error, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Error, log);
}
}
/// <summary>
/// Logs the error message.
/// </summary>
/// <param name="isWriteFile"></param>
/// <param name="format">The format.</param>
/// <param name="arg0">The arg0.</param>
/// <param name="arg1">The arg1.</param>
/// <param name="arg2">The arg2.</param>
public void ErrorFormat(bool isWriteFile, string format, object arg0, object arg1, object arg2)
{
string log = GetDataTimeLog(string.Format(format, arg0, arg2));
Console.WriteLine(m_MessageTemplate, m_Name, m_Error, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Error, log);
}
}
/// <summary>
/// Logs the fatal error message.
/// </summary>
/// <param name="isWriteFile"></param>
/// <param name="message">The message.</param>
public void Fatal(bool isWriteFile, object message)
{
string log = GetDataTimeLog(message.ToString());
Console.WriteLine(m_MessageTemplate, m_Name, m_Fatal, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Fatal, log);
}
}
/// <summary>
/// Logs the fatal error message.
/// </summary>
/// <param name="isWriteFile"></param>
/// <param name="message">The message.</param>
/// <param name="exception">The exception.</param>
public void Fatal(bool isWriteFile, object message, Exception exception)
{
string log = GetDataTimeLog(message + Environment.NewLine + exception.Message + exception.StackTrace);
Console.WriteLine(m_MessageTemplate, m_Name, m_Fatal, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Fatal, log);
}
}
/// <summary>
/// Logs the fatal error message.
/// </summary>
/// <param name="isWriteFile"></param>
/// <param name="format">The format.</param>
/// <param name="arg0">The arg0.</param>
public void FatalFormat(bool isWriteFile, string format, object arg0)
{
string log = GetDataTimeLog(string.Format(format, arg0));
Console.WriteLine(m_MessageTemplate, m_Name, m_Fatal, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Fatal, log);
}
}
/// <summary>
/// Logs the fatal error message.
/// </summary>
/// <param name="isWriteFile"></param>
/// <param name="format">The format.</param>
/// <param name="args">The args.</param>
public void FatalFormat(bool isWriteFile, string format, params object[] args)
{
string log = GetDataTimeLog(string.Format(format, args));
Console.WriteLine(m_MessageTemplate, m_Name, m_Fatal, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Fatal, log);
}
}
/// <summary>
/// Logs the fatal error message.
/// </summary>
/// <param name="isWriteFile"></param>
/// <param name="provider">The provider.</param>
/// <param name="format">The format.</param>
/// <param name="args">The args.</param>
public void FatalFormat(bool isWriteFile, IFormatProvider provider, string format, params object[] args)
{
string log = GetDataTimeLog(string.Format(provider, format, args));
Console.WriteLine(m_MessageTemplate, m_Name, m_Fatal, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Fatal, log);
}
}
/// <summary>
/// Logs the fatal error message.
/// </summary>
/// <param name="isWriteFile"></param>
/// <param name="format">The format.</param>
/// <param name="arg0">The arg0.</param>
/// <param name="arg1">The arg1.</param>
public void FatalFormat(bool isWriteFile, string format, object arg0, object arg1)
{
string log = GetDataTimeLog(string.Format(format, arg0, arg1));
Console.WriteLine(m_MessageTemplate, m_Name, m_Fatal, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Fatal, log);
}
}
/// <summary>
/// Logs the fatal error message.
/// </summary>
/// <param name="isWriteFile"></param>
/// <param name="format">The format.</param>
/// <param name="arg0">The arg0.</param>
/// <param name="arg1">The arg1.</param>
/// <param name="arg2">The arg2.</param>
public void FatalFormat(bool isWriteFile, string format, object arg0, object arg1, object arg2)
{
string log = GetDataTimeLog(string.Format(format, arg0, arg1, arg2));
Console.WriteLine(m_MessageTemplate, m_Name, m_Fatal, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Fatal, log);
}
}
/// <summary>
/// Logs the info message.
/// </summary>
/// <param name="isWriteFile"></param>
/// <param name="message">The message.</param>
public void Info(bool isWriteFile, object message)
{
string log = GetDataTimeLog(message.ToString());
Console.WriteLine(m_MessageTemplate, m_Name, m_Info, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Info, log);
}
}
/// <summary>
/// Logs the info message.
/// </summary>
/// <param name="isWriteFile"></param>
/// <param name="message">The message.</param>
/// <param name="exception">The exception.</param>
public void Info(bool isWriteFile, object message, Exception exception)
{
string log = GetDataTimeLog(message + Environment.NewLine + exception.Message + exception.StackTrace);
Console.WriteLine(m_MessageTemplate, m_Name, m_Info, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Info, log);
}
}
/// <summary>
/// Logs the info message.
/// </summary>
/// <param name="isWriteFile"></param>
/// <param name="format">The format.</param>
/// <param name="arg0">The arg0.</param>
public void InfoFormat(bool isWriteFile, string format, object arg0)
{
string log = GetDataTimeLog(string.Format(format, arg0));
Console.WriteLine(m_MessageTemplate, m_Name, m_Info, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Info, log);
}
}
/// <summary>
/// Logs the info message.
/// </summary>
/// <param name="isWriteFile"></param>
/// <param name="format">The format.</param>
/// <param name="args">The args.</param>
public void InfoFormat(bool isWriteFile, string format, params object[] args)
{
string log = GetDataTimeLog(string.Format(format, args));
Console.WriteLine(m_MessageTemplate, m_Name, m_Info, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Info, log);
}
}
/// <summary>
/// Logs the info message.
/// </summary>
/// <param name="isWriteFile"></param>
/// <param name="provider">The provider.</param>
/// <param name="format">The format.</param>
/// <param name="args">The args.</param>
public void InfoFormat(bool isWriteFile, IFormatProvider provider, string format, params object[] args)
{
string log = GetDataTimeLog(string.Format(provider, format, args));
Console.WriteLine(m_MessageTemplate, m_Name, m_Info, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Info, log);
}
}
/// <summary>
/// Logs the info message.
/// </summary>
/// <param name="isWriteFile"></param>
/// <param name="format">The format.</param>
/// <param name="arg0">The arg0.</param>
/// <param name="arg1">The arg1.</param>
public void InfoFormat(bool isWriteFile, string format, object arg0, object arg1)
{
string log = GetDataTimeLog(string.Format(format, arg0, arg1));
Console.WriteLine(m_MessageTemplate, m_Name, m_Info, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Info, log);
}
}
/// <summary>
/// Logs the info message.
/// </summary>
/// <param name="isWriteFile"></param>
/// <param name="format">The format.</param>
/// <param name="arg0">The arg0.</param>
/// <param name="arg1">The arg1.</param>
/// <param name="arg2">The arg2.</param>
public void InfoFormat(bool isWriteFile, string format, object arg0, object arg1, object arg2)
{
string log = GetDataTimeLog(string.Format(format, arg0, arg1, arg2));
Console.WriteLine(m_MessageTemplate, m_Name, m_Info, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Info, log);
}
}
/// <summary>
/// Logs the warning message.
/// </summary>
/// <param name="isWriteFile"></param>
/// <param name="message">The message.</param>
public void Warn(bool isWriteFile, object message)
{
string log = GetDataTimeLog(message.ToString());
Console.WriteLine(m_MessageTemplate, m_Name, m_Warn, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Warn, log);
}
}
/// <summary>
/// Logs the warning message.
/// </summary>
/// <param name="isWriteFile"></param>
/// <param name="message">The message.</param>
/// <param name="exception">The exception.</param>
public void Warn(bool isWriteFile, object message, Exception exception)
{
string log = GetDataTimeLog(message + Environment.NewLine + exception.Message + exception.StackTrace);
Console.WriteLine(m_MessageTemplate, m_Name, m_Warn, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Warn, log);
}
}
/// <summary>
/// Logs the warning message.
/// </summary>
/// <param name="isWriteFile"></param>
/// <param name="format">The format.</param>
/// <param name="arg0">The arg0.</param>
public void WarnFormat(bool isWriteFile, string format, object arg0)
{
string log = GetDataTimeLog(string.Format(format, arg0));
Console.WriteLine(m_MessageTemplate, m_Name, m_Warn, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Warn, log);
}
}
/// <summary>
/// Logs the warning message.
/// </summary>
/// <param name="isWriteFile"></param>
/// <param name="format">The format.</param>
/// <param name="args">The args.</param>
public void WarnFormat(bool isWriteFile, string format, params object[] args)
{
string log = GetDataTimeLog(string.Format(format, args));
Console.WriteLine(m_MessageTemplate, m_Name, m_Warn, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Warn, log);
}
}
/// <summary>
/// Logs the warning message.
/// </summary>
/// <param name="isWriteFile"></param>
/// <param name="provider">The provider.</param>
/// <param name="format">The format.</param>
/// <param name="args">The args.</param>
public void WarnFormat(bool isWriteFile, IFormatProvider provider, string format, params object[] args)
{
string log = GetDataTimeLog(string.Format(provider, format, args));
Console.WriteLine(m_MessageTemplate, m_Name, m_Warn, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Warn, log);
}
}
/// <summary>
/// Logs the warning message.
/// </summary>
/// <param name="isWriteFile"></param>
/// <param name="format">The format.</param>
/// <param name="arg0">The arg0.</param>
/// <param name="arg1">The arg1.</param>
public void WarnFormat(bool isWriteFile, string format, object arg0, object arg1)
{
string log = GetDataTimeLog(string.Format(format, arg0, arg1));
Console.WriteLine(m_MessageTemplate, m_Name, m_Warn, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Warn, log);
}
}
/// <summary>
/// Logs the warning message.
/// </summary>
/// <param name="isWriteFile"></param>
/// <param name="format">The format.</param>
/// <param name="arg0">The arg0.</param>
/// <param name="arg1">The arg1.</param>
/// <param name="arg2">The arg2.</param>
public void WarnFormat(bool isWriteFile, string format, object arg0, object arg1, object arg2)
{
string log = GetDataTimeLog(string.Format(format, arg0, arg1, arg2));
Console.WriteLine(m_MessageTemplate, m_Name, m_Warn, log);
if (isWriteFile)
{
LogUtil.WriteLogFile(m_Name, m_Warn, log);
}
}
}
、、实现 ILogFactory工厂接口
public class LogFactory : ILogFactory
{
/// <summary>
/// 创建日志实例
/// </summary>
/// <param name="name"></param>
/// <returns></returns>
public ILog GetLog(string name)
{
return new Log(name);
}
}
新建LogUtil类 写入日志文件类
public class LogUtil
{
/// <summary>
/// 格式式化Log信息
/// </summary>
/// <param name="format"></param>
/// <param name="name"></param>
/// <param name="logType"></param>
/// <param name="log"></param>
/// <returns></returns>
private static string GetLogString(string name, string logType, string log)
{
return String.Format("[{0}]{1}-{2}: {3}", DateTime.Now.ToString("HH:mm:ss"), name, logType, log);
}
/// <summary>
/// 获得日志要保存的路径
/// </summary>
/// <param name="name"></param>
/// <param name="logType"></param>
/// <returns></returns>
private static string GetLogPath(string name, string logType)
{
string path = AppDomain.CurrentDomain.BaseDirectory + "Log";
if (!System.IO.Directory.Exists(path))
{
System.IO.Directory.CreateDirectory(path);
}
return System.IO.Path.Combine(path, String.Format("{0}_{1}_{2}.log", DateTime.Now.ToString("yyyy-MM-dd"), name, logType));
}
public static void WriteLogFile(string name, string logType, string log)
{
string logPath = GetLogPath(name, logType);
FileUtil.WriteAppend(logPath, log);
}
}
C# 实现本地化日志管理的更多相关文章
- Apache 日志管理
日志参数 %% 百分号(Apache2.0.44或更高的版本) %a 远端IP地址 %A 本机IP地址 %B 除HTTP头以外传送的字节数 %b 以CLF格式显示的除HTTP头以外传送的字节数,也就是 ...
- 第13章 Linux日志管理
1. 日志管理 (1)简介 在CentOS 6.x中日志服务己经由rsyslogd取代了原先的syslogd服务.rsyslogd日志服务更加先进,功能更多.但是不论该服务的使用,还是日志文件的格式其 ...
- ABP(现代ASP.NET样板开发框架)系列之8、ABP日志管理
点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之8.ABP日志管理 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)” ...
- 【Java EE 学习 76 下】【数据采集系统第八天】【通过AOP实现日志管理】【日志管理功能分析和初步实现】
一.日志管理相关分析 1.日志管理是一种典型的系统级别的应用,非常适合使用spring AOP实现. 2.使用日志管理的目的:对系统修改的动作进行记录,比如对权限.角色.用户的写操作.修改操作.删除操 ...
- ElasticSearch+NLog+Elmah实现Asp.Net分布式日志管理
本文将介绍使用NLOG.Elmah结合ElasticSearch实现分布式日志管理. 一.ElasticSearch简介 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布 ...
- Apache 日志管理,获取客户端端口号
日志管理分类 日志文件是用户管理和监控 Apache 安全的非常好的第一手资料,它清晰地记录了客户端访问 Apache 服务器资源的每一条记录,以及在访问中出现的错误信息,可以这样说,Apache 可 ...
- linux 学习 14 日志管理
第十四讲 日志管理 14.1 日志管理-简介 .日志服务 在CentOS .x中日志服务已经由rsyslogd取代了原先的syslogd服务.rsyslogd日志服务更加先进,功能更多.但是不论该服 ...
- SQL Server中的事务日志管理(7/9):处理日志过度增长
当一切正常时,没有必要特别留意什么是事务日志,它是如何工作的.你只要确保每个数据库都有正确的备份.当出现问题时,事务日志的理解对于采取修正操作是重要的,尤其在需要紧急恢复数据库到指定点时.这系列文章会 ...
- SQL Server中的事务日志管理(9/9):监控事务日志
当一切正常时,没有必要特别留意什么是事务日志,它是如何工作的.你只要确保每个数据库都有正确的备份.当出现问题时,事务日志的理解对于采取修正操作是重要的,尤其在需要紧急恢复数据库到指定点时.这系列文章会 ...
随机推荐
- HihoCoder1651 : 小球染色([Offer收割]编程练习赛38)(DP的优化)
描述 小Ho面前有N个小球排成了一排.每个小球可以被染成M种颜色之一. 为了增强视觉效果,小Ho希望不存在连续K个或者K个以上的小球颜色一样. 你能帮小Ho计算出一共有多少种不同的染色方法么? 例如N ...
- HihoCoder1653 : 公平分队([Offer收割]编程练习赛39)(贪心)
描述 小Hi和小Ho在玩一个战争游戏.游戏中2N个战斗单位,其中第i个单位的战斗力是Ai. 现在小Hi和小Ho要各选N个单位组成队伍,当然他们都希望自己队伍的总战斗力越大越好. 为了使分队更加公平,经 ...
- 三:JMS消息服务规范
一:JMS是什么?--->JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API--->用于在两个应用程 ...
- Educational Codeforces Round 17 颓废记
又被虐了... (记一次惨痛的Codeforces) 好不容易登上去了Codeforces,22:35准时开打 第一题,一看:这不SB题嘛?直接枚举因数上啊.9min才过掉了pretest 第二题.. ...
- Btree算法的C语言实现
btree.h //实现对order序(阶)的B-TREE结构基本操作的封装. //查找:search,插入:insert,删除:remove. //创建:create,销毁:destory,打印:p ...
- JS---设计简易日历
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- 1、CDH集群搭建
一.准备工作 1.系统环境 系统centos6.5 节点三台: 192.168.1.130 192.168.1.131 192.168.1.132 1.所有节点关闭防火墙 service iptabl ...
- vc++图像显示
显示资源中的图片 (1)从资源中装入位图 ● 定义位图对象数据成员CBitmap m_Bitmap; ● 调用CBitmap成员函数LoadBitmap(),如m_Bitmap.LoadBitmap( ...
- HDU - 5001 Walk(概率dp+记忆化搜索)
Walk I used to think I could be anything, but now I know that I couldn't do anything. So I started t ...
- DropDownlist数据SelectedIndexChanged触发问题解决
1.设置DropDownlist的AutoPostBack为True 2.绑定DropDownlist数据时出现了重复项, 在载入数据时保存数据状态应该写在Load事件中的if (!IsPostBac ...