Files
lserp_cs_5.0/插件库/Zhaizj.Framework/Log/LogManager.cs
T
2026-07-10 15:25:05 +08:00

87 lines
2.4 KiB
C#

using System;
using System.Reflection;
using System.Web;
using Zhaizj.Framework.IO;
using Zhaizj.Framework.Log;
using Zhaizj.Framework.Web;
namespace Zhaizj.Framework {
/// <summary>
/// 日志管理对象,通常用于获取日志工具
/// </summary>
/// <example>
/// 一般在类的第一行定义
/// <code>
/// private static readonly ILog logger = LogManager.GetLogger( typeof( ObjectBase ) );
/// </code>
/// 然后可以在其他方法中使用
/// <code>
/// logger.Info( "your message" );
/// </code>
/// </example>
public class LogManager {
private LogManager() {
}
/// <summary>
/// 获取一个日志工具
/// </summary>
/// <param name="type">对象类型</param>
/// <returns>返回日志工具</returns>
public static ILog GetLogger( Type type ) {
return GetLogger( type.FullName );
}
/// <summary>
/// 获取一个日志工具
/// </summary>
/// <param name="typeName">对象类型</param>
/// <returns>返回日志工具</returns>
public static ILog GetLogger( String typeName ) {
ILog log = getLogger();
log.TypeName = typeName;
return log;
}
private static ILog getLogger() {
if (LogConfig.Instance.Level == LogLevel.None)
return new NullLogger();
if (strUtil.IsNullOrEmpty( LogConfig.Instance.LoggerImpl ))
return new FileLogger();
ILog log = null;
String loggerImpl = LogConfig.Instance.LoggerImpl;
if (strUtil.HasText( loggerImpl )) {
String[] strArray = loggerImpl.Split( new char[] { ',' } );
if (strArray.Length == 1) {
Type type = Type.GetType( strArray[0].Trim() );
if (type != null) {
log = rft.GetInstance( type ) as ILog;
}
return log;
}
if (strArray.Length == 2) {
log = Assembly.Load( strArray[1].Trim() ).CreateInstance( strArray[0].Trim() ) as ILog;
}
}
return log;
}
/// <summary>
/// 立即将日志内容写入磁盘(在 web 中,日志是在页面请求结束的时候才一起写入到磁盘的)
/// </summary>
public static void Flush() {
if (!SystemInfo.IsWeb) return;
LoggerUtil.Flush();
}
}
}