配置文件 log4net.config内容,关于样式部分参考https://logging.apache.org/log4net/download_log4net.cgi
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</configSections>
<log4net>
<!--定义输出到文件中-->
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<!--定义文件存放位置-->
<file value="D:\config\RevitLogJerry_" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<!--<datePattern value="yyyy\\yyyyMM\\yyyyMMdd'.txt'"/>-->
<datePattern value="yyyyMMddhh'.log'" />
<staticLogFileName value="false" />
<param name="MaxSizeRollBackups" value="100" />
<layout type="log4net.Layout.PatternLayout">
<!--每条日志末尾的文字说明-->
<!--
DEBUG 14:46:37 类名:TestLog4NetInDll.TestLogCommand 行号:35 信息:【提示001】
ERROR 14:46:37 类名:TestLog4NetInDll.TestLogCommand 行号:40 信息:【第0条测试信息】
-->
<conversionPattern value="%level %date{HH:mm:ss} 类名:%C 行号:%L 信息:【%message】 %n" />
</layout>
</appender>
<logger name="zfc">
<level value="DEBUG" />
<appender-ref ref="RollingLogFileAppender" />
</logger>
</log4net>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
</configuration>
使用部分
01、帮助类
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using log4net;
using log4net.Config;
namespace TestLog4NetInDll
{
public class LogHelper
{
public const string ConfigFileName = "log4net.config";
static ILog loger;
public ILog LogerInstance
{
get
{
if (loger == null)
loger = LogManager.GetLogger("zfc");
return loger;
}
}
//类初始化时将进行配置文件的路径确定
public LogHelper()
{
#if DEBUG
FileInfo configFile = new FileInfo(@"D:\config\log4net.config");
#else
//发布版的配置文件路径为:dll所在文件夹的文件夹的平级目录
/*
C:\Users\aaa\source\repos\TestLog4NetInDll\TestLog4NetInDll\bin\Release\TestLog4NetInDll.dll
C:\Users\aaa\source\repos\TestLog4NetInDll\TestLog4NetInDll\bin\log4net.config
*/
string currentCommandAssemblyPath = System.Reflection.Assembly.GetExecutingAssembly().Location;
//
FileInfo fileInfo = new FileInfo(currentCommandAssemblyPath);
//
string tempImgPath = fileInfo.Directory.Parent.FullName;
//
string path = Path.Combine(System.Reflection.Assembly.GetExecutingAssembly().FullName, ConfigFileName);
FileInfo configFile = new FileInfo(path);
#endif
XmlConfigurator.ConfigureAndWatch(configFile);
}
protected void LogException(Exception ex)
{
LogerInstance.Error("", ex);
}
protected void LogInfo(string msg)
{
LogerInstance.Info(msg);
}
}
}
02、在动态链接库里面调用时
LogHelper loger = new LogHelper();
ILog logHelper = loger.LogerInstance;
if (!logHelper.IsErrorEnabled)
{
TaskDialog.Show("TestLog", logHelper.IsErrorEnabled.ToString() + " IsErrorEnabled False");
}
logHelper.Debug("提示001");
03、说明,不需要另外其他地方配置,因为在帮助类里面对config文件路径进行了配置,当然大家按照实际使用情况改为自己实际存放的路径
扫描二维码关注公众号,回复:
2352197 查看本文章