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配 ...
随机推荐
- 安装mysql步骤
1.yum install lrzsz 安装上传功能2.查看系统是否装有MySql :rpm -qa | grep mysql3.查看系统Mysql位置 :whereis mysql4.卸载Mysq ...
- function语句和function表达式的随笔
function语句: function fn(){};/*利用function关键字声明,其在作用域顶端*/ function表达式: var fn = function(){};或者 var fn ...
- cnblogs,我回来了
之前是在Github上搭了个博客,原因只有一个:可以弄个比较个性的域名,逼格高. 不过用起来倒是麻烦,一是经常纠结自己的主页是不是不够逼格?二就是身在墙内,访问速度不理想. 所以,还是安心的在这里,写 ...
- 怎么解决svn清理失败且路径显示乱码问题
http://jingyan.baidu.com/article/295430f1d728830c7e0050f9.html 上面这个网址是百度经验给的方法,我也是参照这个方式解决了问题,虽然是解决了 ...
- WINDOWS 远程桌面不能直接拷贝文件问题
使用WIN7远程客户端连WIN 2003服务器,发现不能拷贝文件,使用下面方法解决:
- poi批量导入excel文件
package com.practice.util; import java.io.File; import java.io.FileInputStream; import java.io.FileN ...
- EJDK, Raspberry Pi, and NetBeans IDE 8
https://blogs.oracle.com/geertjan/entry/youtube_ejdk_raspberry_pi_and
- Vim特定行行尾追加
python print 替换 logging 1.print语句最后追加")". :%s/\(.*\)print \(.*\)/\1print \2)/g 2." ...
- ipv6过审函数
int _ResolveIPv4Address(const char* ipv4_str, char* buffer, int bufferSize) { struct addrinfo hints, ...
- web前端相关网站
传智播客. (有很多公开课的,而且他的百度云盘也有很多东西) http://www.itcast.cn/(这个不是广告,爱信不信) 慕课网 ...