C# 将文件嵌入DLL 。Log4net 配置
最近在弄使用Log4net记录日志。
将配置文件封装到的DLL中。
封装步骤:
1.将配置文件添加到类库中。
2.在配置文件上右键,选择属性。
3.
此时生成类库。DLL中就存在该配置文件啦。如图:

在类库中使用该配置文件:
//获取配置文件全称
string str = System.Reflection.Assembly.GetExecutingAssembly().GetName().Name + ".Log4Net.config";
//读取配置文件
System.IO.Stream stream = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream(str);
log4net.Config.XmlConfigurator.Configure(stream);
附上使用Log4net全部代码
1.配置文件:Log4net.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<log4net>
<logger name="ErrorLog">
<level value="ERROR"></level>
<appender-ref ref="ErrorLog"></appender-ref>
</logger> <appender name="ErrorLog" type="log4net.Appender.RollingFileAppender">
<param name="File" value="ErrorLog/" />
<param name="AppendToFile" value="true" />
<!--是否默认文件名-->
<param name="StaticLogFileName" value="false" />
<!--变换的形式为日期--> <rollingStyle value="Date" /> <!--日期的格式,每天换一个文件记录--> <datePattern value="yyyyMMdd.TXT" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="[Log]%n记录时间:%d %n异常信息:%m%n[EndLog]%n%n" />
</layout>
</appender> <logger name="InfoLog">
<level value="INFO"></level>
<appender-ref ref="InfoLog"></appender-ref>
</logger>
<appender name="InfoLog" type="log4net.Appender.RollingFileAppender">
<param name="File" value="InfoLog\\" />
<param name="AppendToFile" value="true" />
<!--是否默认文件名-->
<param name="StaticLogFileName" value="false" />
<!--变换的形式为日期--> <rollingStyle value="Date" /> <!--日期的格式,每天换一个文件记录--> <datePattern value="yyyyMMdd.TXT" /> <layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="[Log]%n记录时间:%d %n异常信息:%m%n[EndLog]%n%n" />
</layout>
</appender> <logger name="WarnLog">
<level value="INFO"></level>
<appender-ref ref="WarnLog"></appender-ref>
</logger>
<appender name="WarnLog" type="log4net.Appender.RollingFileAppender">
<param name="File" value="WarnLog\\" />
<param name="AppendToFile" value="true" />
<!--是否默认文件名-->
<param name="StaticLogFileName" value="false" />
<!--变换的形式为日期--> <rollingStyle value="Date" /> <!--日期的格式,每天换一个文件记录--> <datePattern value="yyyyMMdd.TXT" /> <layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="[Log]%n记录时间:%d %n异常信息:%m%n[EndLog]%n%n" />
</layout>
</appender> <logger name="FatalLog">
<level value="Fatal"></level>
<appender-ref ref="FatalLog"></appender-ref>
</logger>
<appender name="FatalLog" type="log4net.Appender.RollingFileAppender">
<param name="File" value="FatalLog\\" />
<param name="AppendToFile" value="true" />
<!--是否默认文件名-->
<param name="StaticLogFileName" value="false" />
<!--变换的形式为日期--> <rollingStyle value="Date" /> <!--日期的格式,每天换一个文件记录--> <datePattern value="yyyyMMdd.TXT" /> <layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="[Log]%n记录时间:%d %n异常信息:%m%n[EndLog]%n%n" />
</layout>
</appender> </log4net> </configuration>
2.日志帮助类:LogHelper
public class LogHelper
{
public static LogHelper logHelper=new LogHelper();
private readonly static ILog _errorLog = LogManager.GetLogger("ErrorLog");
private readonly static ILog _infoLog = LogManager.GetLogger("InfoLog");
private readonly static ILog _warnLog = LogManager.GetLogger("WarnLog");
private readonly static ILog _fatalLog = LogManager.GetLogger("FatalLog");
private LogHelper()
{
//获取配置文件全称
string str = System.Reflection.Assembly.GetExecutingAssembly().GetName().Name + ".Log4Net.config";
//读取配置文件
System.IO.Stream stream = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream(str);
log4net.Config.XmlConfigurator.Configure(stream);
} /// <summary>
/// 普通日志信息
/// </summary>
/// <param name="msg">日志内容</param>
/// <param name="stackTrace">位置跟踪</param>
public void InfoLog(string msg, string stackTrace)
{
Log(LogType.InfoLog, msg, stackTrace);
} /// <summary>
/// 警告级日志信息
/// </summary>
/// <param name="msg">日志内容</param>
/// <param name="stackTrace">位置跟踪</param>
public void WarnLog(string msg, string stackTrace)
{
Log(LogType.WarnLog, msg, stackTrace);
} /// <summary>
/// Error级日志信息
/// </summary>
/// <param name="msg">日志内容</param>
/// <param name="stackTrace">位置跟踪</param>
public void ErrorLog(string msg, string stackTrace)
{
Log(LogType.ErrorLog, msg, stackTrace);
}
/// <summary>
/// 致命级日志信息
/// </summary>
/// <param name="msg">日志内容</param>
/// <param name="stackTrace">位置跟踪</param>
public void FatalLog(string msg, string stackTrace)
{ Log(LogType.FatalLog, msg, stackTrace);
} /// <summary>
/// 记录日志通用方法
/// </summary>
/// <param name="ltype">所添加日志类型,LogType枚举</param>
/// <param name="logs">所添加的日志信息</param>
public void Log(LogType ltype, params string[] logs)
{
string msg = string.Join("\n", logs);
switch (ltype)
{
case LogType.InfoLog: if (_infoLog.IsInfoEnabled) _infoLog.Fatal(msg);
break;
case LogType.WarnLog: if (_warnLog.IsWarnEnabled) _warnLog.Fatal(msg);
break;
case LogType.ErrorLog: if (_errorLog.IsErrorEnabled) _errorLog.Fatal(msg);
break;
case LogType.FatalLog: if (_fatalLog.IsFatalEnabled) _fatalLog.Fatal(msg);
break;
}
}
} public enum LogType
{
/// <summary>
/// 普通日志
/// </summary>
InfoLog = ,
/// <summary>
/// 警告级别日志
/// </summary>
WarnLog = ,
/// <summary>
/// 错误级别日志
/// </summary>
ErrorLog = ,
/// <summary>
/// 致命级别日志
/// </summary>
FatalLog =
}
C# 将文件嵌入DLL 。Log4net 配置的更多相关文章
- Winform Log4net 配置写不同文件
以下配置了二种写文件,第一种根据日期写文件yyyyMMdd.txt,第二种是写固定文件login.txt. 1, 下载Log4net组件: http://logging.apache.org/log4 ...
- c# 文件日志处理 需要log4net配置
using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using S ...
- C# 嵌入dll 动软代码生成器基础使用 系统缓存全解析 .NET开发中的事务处理大比拼 C#之数据类型学习 【基于EF Core的Code First模式的DotNetCore快速开发框架】完成对DB First代码生成的支持 基于EF Core的Code First模式的DotNetCore快速开发框架 【懒人有道】在asp.net core中实现程序集注入
C# 嵌入dll 在很多时候我们在生成C#exe文件时,如果在工程里调用了dll文件时,那么如果不加以处理的话在生成的exe文件运行时需要连同这个dll一起转移,相比于一个单独干净的exe,这种形 ...
- .NET 将 .config 文件嵌入到程序集
原文:.NET 将 .config 文件嵌入到程序集 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/Iron_Ye/article/details/ ...
- C# Log4Net配置
Log4Net是用来记录日志的,可以将程序运行过程中的信息输出到一些地方(文件.数据库.EventLog等),日志就是程序的黑匣子,可以通过日志查看系统的运行过程,从而发现系统的问题.日志的作用:将运 ...
- Log4Net 配置和使用
转:http://www.cnblogs.com/chencidi/archive/2010/01/12/1645291.html web.config配置如下: <?xml version=& ...
- Log4Net配置 转
http://www.cnblogs.com/qingyi/archive/2010/01/14/1647915.html 用一些东西老是忘记,先记在这啦.. <!--log4net相关说明一. ...
- MVC Log4Net 配置
1.引用log4net.dll 2.在项目根目录下增加log4.config文件 <?xml version="1.0"?> <configuration> ...
- ASP.NET MVC学习之Log4Net配置(日志记录)
Log4Net配置笔记---- 首先,添加对log4net.dll的引用. 在Web.config文件下的Configuration节点下添加Log4Net的配置信息: <!--Log4Net配 ...
随机推荐
- linux mysql远程连接
今天在本地连接linux服务端的mysql始终报错61,谷歌后找到原因: linux的mysql默认是不允许远程连接操作的,在stack上面找到方法:修改mysql配置文件/usr/local/mys ...
- mac系统下Ruby环境安装
在我们编写代码过程中,会用到一系列的第三方开源类库,我们可以选择手动去一个个添加需要的库,但这非常麻烦.因此我们可以使用CocoaPods来帮助我们自动添加.使用CocoaPods需要先安装Ruby环 ...
- Hash函数及其应用
本文部分内容摘自网络,参考资料链接会在文后给出,在此感谢原作者的分享. 计算理论中,没有Hash函数的说法,只有单向函数的说法.所谓的单向函数,是一个复杂的定义,大家可以去看计算理论或者密码学方面的数 ...
- jmeter上传文件搞了一天,才搞定,没高人帮忙效率就是低,赶紧记下来,以备后用
先用谷歌浏览器抓包,抓到的包类似这样: 在jmeter里添加一个http请求,配置好参数,方法,端口,路径等, 勾选 在“同请求一起发送参数”里填写上面抓包的部分数据: 分别对应录入,勾选“编码” 我 ...
- archlinux配置答疑
Q: chinese can not appear in my firefox and terminal rightly A: pacman -S wqy-microhei Q: install pi ...
- <读书笔记>软件调试之道 :从大局看调试-发现代码存在问题
声明:本文档的内容主要来源于书籍<软件调试修炼之道>作者Paul Butcher,属于读书笔记.欢迎转载! ---------------------------------------- ...
- java类型占用字节数&类型转换
1.整型类型 存储需求 bit数 取值范围 备注int 4字节 4*8 short ...
- MySQL中存储过程+事件的使用方法
一.背景 将界面操作日志存储在MySQL数据库中的operationlog表中,如果该表不能自动备份,表中的数据会越来越多,影响速度.可以定期将表中数据备份到另外一个表中来解决. 二.解决方案 1.使 ...
- SQL多表联查
left join >>>外联 on >>>跟and一样使用,作为外联条件 表明后面加大写字母表示该表别名 例: select A.*,B.name userNam ...
- const char **
foo (const char **p){ } main (int argh,char **argv) { foo(argv); } warning : argument is i ...