摘要:本文将带你了解C#编程之log4net使用,大部分系统,一旦上线之后,就很难再利用专门的测试工具去测试, 这时候就需要有一套强大的日志系统来配合诊断及解决线上的问题,这里主要贴上一段C#中使用delog4net日志API。希望本文对大家学C#/.Net有所帮助。
首先是配置文件:
<?xml version="1.0" encoding="utf-8" ?><configuration>
<configSections>
<section name="log4net" type="System.Configuration.IgnoreSectionHandler"/>
</configSections>
<log4net>
<appender name="ConsoleAppender"
type="log4net.Appender.ConsoleAppender" >
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
</layout>
</appender>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="log\logfile.log"/>
<appendToFile value="true"/>
<rollingStyle value="Composite"/>
<datePattern value="yyyyMMdd"/>
<maxSizeRollBackups value="10"/>
<maximumFileSize value="1MB"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/>
</layout>
</appender>
<root>
<level value="All"/>
<appender-ref ref="RollingLogFileAppender"/>
<appender-ref ref="ConsoleAppender"/>
</root>
</log4net>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
</startup></configuration>
然后是对应的类:
using System;using System.Collections.Generic;using System.Text;using System.Diagnostics.Tracing;using System.Diagnostics;using System.CodeDom.Compiler;using log4net;using System.Collections.Concurrent;//指定log4net使用的config文件来读取配置信息//[assembly: log4net.Config.XmlConfigurator(ConfigFile = @"Uti_Log4net_CF\Uti_Log4net_CF.config", Watch = true)]namespace Share_Utilities
{
class Uti_Log4net_C
{
private static readonly ConcurrentDictionary<Type, ILog> _loggers = new ConcurrentDictionary<Type, ILog>();
private static readonly ConcurrentDictionary<String, ILog> _str_loggers = new ConcurrentDictionary<String, ILog>();
/// <summary>
/// 获取记录器
/// </summary>
/// <param name="source"></param>
/// <returns></returns>
private static ILog GetLogger(String source)
{
if (_str_loggers.ContainsKey(source))
{
return _str_loggers[source];
}
else
{
ILog logger = LogManager.GetLogger(source);
_str_loggers.TryAdd(source, logger);
return logger;
}
}
/* Log a message object */
/// <summary>
/// 获取记录器
/// </summary>
/// <param name="source"></param>
/// <returns></returns>
private static ILog GetLogger(Type source)
{
if (_loggers.ContainsKey(source))
{
return _loggers[source];
}
else
{
ILog logger = LogManager.GetLogger(source);
_loggers.TryAdd(source, logger);
return logger;
}
}
/* Log a message object */
/// <summary>
/// 调试信息
/// </summary>
/// <param name="source"></param>
/// <param name="message"></param>
public static void Debug(Type source, object message)
{
ILog logger = GetLogger(source);
if (logger.IsDebugEnabled)
logger.Debug(message);
}
/// <summary>
/// 调试信息
/// </summary>
/// <param name="source"></param>
/// <param name="message"></param>
public static void Debug(object source, object message)
{
Debug(source.GetType(), message);
}
/// <summary>
/// 调试信息
/// </summary>
/// <param name="source"></param>
/// <param name="message"></param>
/// <param name="args"></param>
public static void Debug(Type source, string format, params object[] args)
{
ILog logger = GetLogger(source);
if (logger.IsDebugEnabled)
logger.DebugFormat(format, args);
}
/// <summary>
/// 调试信息
/// </summary>
/// <param name="source"></param>
/// <param name="message"></param>
/// <param name="args"></param>
public static void Debug(object source, string format, params object[] args)
{
Debug(source.GetType(), format, args);
}
/// <summary>
/// 调试信息
/// </summary>
/// <param name="source"></param>
/// <param name="message"></param>
/// <param name="args"></param>
public static void Info(Type source, string format, params object[] args)
{
ILog logger = GetLogger(source);
if (logger.IsInfoEnabled)
logger.InfoFormat(format, args);
}
/// </summary>
/// <param name="source"></param>
/// <param name="message"></param>
/// <param name="args"></param>
public static void Info(object source, string format, params object[] args)
{
Info(source.GetType(), format, args);
}
/// <summary>
/// 关键信息
/// </summary>
/// <param name="source"></param>
/// <param name="message"></param>
public static void Info(Type source, object message)
{
ILog logger = GetLogger(source);
if (logger.IsInfoEnabled)
logger.Info(message);
}
/// <summary>
/// 关键信息
/// </summary>
/// <param name="source"></param>
/// <param name="message"></param>
public static void Info(object source, object message)
{
Info(source.GetType(), message);
}
/// <summary>
/// 警告信息
/// </summary>
/// <param name="source"></param>
/// <param name="message"></param>
public static void Warn(Type source, object message)
{
ILog logger = GetLogger(source);
if (logger.IsWarnEnabled)
logger.Warn(message);
}
/// <summary>
/// 警告信息
/// </summary>
/// <param name="source"></param>
/// <param name="message"></param>
public static void Warn(object source, object message)
{
Warn(source.GetType(), message);
}
/// <summary>
/// 警告信息
/// </summary>
/// <param name="source"></param>
/// <param name="message"></param>
/// <param name="args"></param>
public static void Warn(Type source, string format, params object[] args)
{
ILog logger = GetLogger(source);
if (logger.IsWarnEnabled)
logger.WarnFormat(format, args);
}
/// <summary>
/// 警告信息
/// </summary>
/// <param name="source"></param>
/// <param name="message"></param>
/// <param name="args"></param>
public static void Warn(object source, string format, params object[] args)
{
Warn(source.GetType(), format, args);
}
/// <summary>
/// 错误信息
/// </summary>
/// <param name="source"></param>
/// <param name="message"></param>
public static void Error(Type source, object message)
{
ILog logger = GetLogger(source);
if (logger.IsErrorEnabled)
logger.Error(message);
}
/// <summary>
/// 错误信息
/// </summary>
/// <param name="source"></param>
/// <param name="message"></param>
public static void Error(object source, object message)
{
Error(source.GetType(), message);
}
/// <summary>
/// 错误信息
/// </summary>
/// <param name="source"></param>
/// <param name="message"></param>
/// <param name="args"></param>
public static void Error(Type source, string format, params object[] args)
{
ILog logger = GetLogger(source);
if (logger.IsErrorEnabled)
logger.ErrorFormat(format, args);
}
/// <summary>
/// 错误信息
/// </summary>
/// <param name="source"></param>
/// <param name="message"></param>
/// <param name="args"></param>
public static void Error(object source, string format, params object[] args)
{
Error(source.GetType(), format, args);
}
/// <summary>
/// 失败信息
/// </summary>
/// <param name="source"></param>
/// <param name="message"></param>
public static void Fatal(Type source, object message)
{
ILog logger = GetLogger(source);
if (logger.IsFatalEnabled)
logger.Fatal(message);
}
/// <summary>
/// 失败信息
/// </summary>
/// <param name="source"></param>
/// <param name="message"></param>
public static void Fatal(object source, object message)
{
Fatal(source.GetType(), message);
}
/// <summary>
/// 失败信息
/// </summary>
/// <param name="source"></param>
/// <param name="message"></param>
public static void Fatal(Type source, string format, params object[] args)
{
ILog logger = GetLogger(source);
if (logger.IsFatalEnabled)
logger.FatalFormat(format, args);
}
/// <summary>
/// 失败信息
/// </summary>
/// <param name="source"></param>
/// <param name="message"></param>
public static void Fatal(object source, string format, params object[] args)
{
Fatal(source.GetType(), format, args);
}
/* Log a message object and exception */
/// <summary>
/// 调试信息
/// </summary>
/// <param name="source"></param>
/// <param name="message"></param>
/// <param name="exception"></param>
public static void Debug(object source, Exception exception, object message)
{
GetLogger(source.GetType()).Debug(message, exception);
}
/// <summary>
/// 关键信息
/// </summary>
/// <param name="source"></param>
/// <param name="message"></param>
/// <param name="exception"></param>
public static void Info(object source, Exception exception, object message)
{
GetLogger(source.GetType()).Info(message, exception);
}
/// <summary>
/// 警告信息
/// </summary>
/// <param name="source"></param>
/// <param name="message"></param>
/// <param name="exception"></param>
public static void Warn(object source, Exception exception, object message)
{
GetLogger(source.GetType()).Warn(message, exception);
}
/// <summary>
/// 错误信息
/// </summary>
/// <param name="source"></param>
/// <param name="message"></param>
/// <param name="exception"></param>
public static void Error(object source, Exception exception, object message)
{
GetLogger(source.GetType()).Error(message, exception);
}
/// <summary>
/// 错误信息
/// </summary>
/// <param name="source"></param>
/// <param name="message"></param>
/// <param name="exception"></param>
public static void Fatal(object source, Exception exception, object message)
{
GetLogger(source.GetType()).Fatal(message, exception);
}
/* Type String source */
/* Log a message object */
/// <summary>
/// 调试信息
/// </summary>
/// <param name="source"></param>
/// <param name="message"></param>
public static void Debug(String source, object message)
{
ILog logger = GetLogger(source);
if (logger.IsDebugEnabled)
logger.Debug(message);
}
/// <summary>
/// 调试信息
/// </summary>
/// <param name="source"></param>
/// <param name="message"></param>
/// <param name="args"></param>
public static void Debug(String source, string format, params object[] args)
{
ILog logger = GetLogger(source);
if (logger.IsDebugEnabled)
logger.DebugFormat(format, args);
}
/// <summary>
/// 调试信息
/// </summary>
/// <param name="source"></param>
/// <param name="message"></param>
/// <param name="args"></param>
public static void Info(String source, string format, params object[] args)
{
ILog logger = GetLogger(source);
if (logger.IsInfoEnabled)
logger.InfoFormat(format, args);
}
/// <summary>
/// 关键信息
/// </summary>
/// <param name="source"></param>
/// <param name="message"></param>
public static void Info(String source, object message)
{
ILog logger = GetLogger(source);
if (logger.IsInfoEnabled)
logger.Info(message);
}
/// <summary>
/// 警告信息
/// </summary>
/// <param name="source"></param>
/// <param name="message"></param>
public static void Warn(String source, object message)
{
ILog logger = GetLogger(source);
if (logger.IsWarnEnabled)
logger.Warn(message);
}
/// <summary>
/// 警告信息
/// </summary>
/// <param name="source"></param>
/// <param name="message"></param>
/// <param name="args"></param>
public static void Warn(String source, string format, params object[] args)
{
ILog logger = GetLogger(source);
if (logger.IsWarnEnabled)
logger.WarnFormat(format, args);
}
/// <summary>
/// 错误信息
/// </summary>
/// <param name="source"></param>
/// <param name="message"></param>
public static void Error(String source, object message)
{
ILog logger = GetLogger(source);
if (logger.IsErrorEnabled)
logger.Error(message);
}
/// <summary>
/// 错误信息
/// </summary>
/// <param name="source"></param>
/// <param name="message"></param>
/// <param name="args"></param>
public static void Error(String source, string format, params object[] args)
{
ILog logger = GetLogger(source);
if (logger.IsErrorEnabled)
logger.ErrorFormat(format, args);
}
/// <summary>
/// 失败信息
/// </summary>
/// <param name="source"></param>
/// <param name="message"></param>
public static void Fatal(String source, object message)
{
ILog logger = GetLogger(source);
if (logger.IsFatalEnabled)
logger.Fatal(message);
}
/// <summary>
/// 失败信息
/// </summary>
/// <param name="source"></param>
/// <param name="message"></param>
public static void Fatal(String source, string format, params object[] args)
{
ILog logger = GetLogger(source);
if (logger.IsFatalEnabled)
logger.FatalFormat(format, args);
}
/* Log a message object and exception */
/// <summary>
/// 调试信息
/// </summary>
/// <param name="source"></param>
/// <param name="message"></param>
/// <param name="exception"></param>
public static void Debug(String source, Exception exception, object message)
{
GetLogger(source).Debug(message, exception);
}
/// <summary>
/// 调试信息
/// </summary>
/// <param name="source"></param>
/// <param name="message"></param>
/// <param name="exception"></param>
public static void Info(String source, Exception exception, object message)
{
GetLogger(source).Debug(message, exception);
}
/// <summary>
/// 调试信息
/// </summary>
/// <param name="source"></param>
/// <param name="message"></param>
/// <param name="exception"></param>
public static void Error(String source, Exception exception, object message)
{
GetLogger(source).Debug(message, exception);
}
/// <summary>
/// 调试信息
/// </summary>
/// <param name="source"></param>
/// <param name="message"></param>
/// <param name="exception"></param>
public static void Warn(String source, Exception exception, object message)
{
GetLogger(source).Debug(message, exception);
}
/// <summary>
/// 调试信息
/// </summary>
/// <param name="source"></param>
/// <param name="message"></param>
/// <param name="exception"></param>
public static void Fatal(String source, Exception exception, object message)
{
GetLogger(source).Debug(message, exception);
}
}
}
以上就介绍了C#.NET的相关知识,希望对C#.NET有兴趣的朋友有所帮助。了解更多内容,请关注职坐标编程语言C#.NET频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号