WPF使用Log4net.dll库的demo(转载加个人观点)
- 原文地址:http://blog.csdn.net/linraise/article/details/50547149
- 配置文件解析地址:http://blog.csdn.net/pfe_nova/article/details/12225349
1.引入库log4net.dll
2.展开项目文件下的Properties文件夹,打开AssemblyInfo.cs并在AssemblyInfo.cs中添加一行:在AssemblyInfo.cs中添加一行:(其中log4net.config对应配置文件名)
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", ConfigFileExtension = "config", Watch = true)]
- 3.添加log4net.config配置文件:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="System.Configuration.IgnoreSectionHandler"/>
</configSections>
<log4net>
<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"/>
</root>
</log4net>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
</startup>
</configuration>
- 4.添加一个公共的日志管理类AppLog.cs
using System;
using System.Collections.Generic;
using System.Text;
using log4net;
using log4net.Config;
using System.IO; namespace log4net
{
/// <summary>
/// 使用Log4net插件的log日志对象
/// </summary>
public static class AppLog
{
private static ILog log; static AppLog()
{
XmlConfigurator.ConfigureAndWatch(new FileInfo(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile));
log = LogManager.GetLogger(typeof(AppLog));
} public static void Debug(object message)
{
log.Debug(message);
} public static void DebugFormatted(string format, params object[] args)
{
log.DebugFormat(format, args);
} public static void Info(object message)
{
log.Info(message);
} public static void InfoFormatted(string format, params object[] args)
{
log.InfoFormat(format, args);
} public static void Warn(object message)
{
log.Warn(message);
} public static void Warn(object message, Exception exception)
{
log.Warn(message, exception);
} public static void WarnFormatted(string format, params object[] args)
{
log.WarnFormat(format, args);
} public static void Error(object message)
{
log.Error(message);
} public static void Error(object message, Exception exception)
{
log.Error(message, exception);
} public static void ErrorFormatted(string format, params object[] args)
{
log.ErrorFormat(format, args);
} public static void Fatal(object message)
{
log.Fatal(message);
} public static void Fatal(object message, Exception exception)
{
log.Fatal(message, exception);
} public static void FatalFormatted(string format, params object[] args)
{
log.FatalFormat(format, args);
}
}
}
- 5.在任何你想写日志的地方使用,例如:
AppLog.Info("Info log");
AppLog.Error("Error log");
- 6.经验之谈:不要把项目名称起为log4net,或任何数字在中间的名称,否则引入log4net.dll的时候就会直接报错
- 7.当运行正常没有创建日志文件或者log = LogManager.GetLogger(typeof(AppLog))中log对象字段值为false时,右击log4net.config选择属性-->高级把复制到项目的值改为始终复制
- 8 类库项目中好像不能实现此打印日志功能,
WPF使用Log4net.dll库的demo(转载加个人观点)的更多相关文章
- libcurl开源库在Win7 + VS2012环境下编译、配置详解 以及下载文件并显示下载进度 demo(转载)
转载:http://blog.csdn.net/fengshuiyue/article/details/39530093(基本教程) 转载:https://my.oschina.net/u/14207 ...
- C# 调用C++ DLL 的类型转换(转载版)
最近在做视频监控相关的demo开发,实现语言是C#,但视频监控的SDK是C++开发的,所以涉及到C#调用C++的dll库.很多结构体.参数在使用时都要先进行转换,由非托管类型转换成托管类型后才能使用. ...
- WPF程序将DLL嵌入到EXE的两种方法
WPF程序将DLL嵌入到EXE的两种方法 这一篇可以看作是<Visual Studio 版本转换工具WPF版开源了>的续,关于<Visual Studio 版本转换工具WPF版开源了 ...
- DLL库
6.阿里云上传.下载:Aliyun.OSS.dll https://help.aliyun.com/ 5.SQLite数据库操作:SQLite.Interop.dll.SQLite.Designer. ...
- Visual Studio 进行Excel相关开发,Microsoft.Office.Interop.Excel.dll库
1. Interop.Excel.dll 的查找 本文中将 Microsoft.Office.Interop.Excel.dll库简称为Interop.Excel.dll库 其实在使用Visual S ...
- WPF使用DynamicDataDisplay.dll显示CPU及内存使用曲线
原文:WPF使用DynamicDataDisplay.dll显示CPU及内存使用曲线 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/wangshub ...
- LoadLibrary方法加载运行DLL库
最近和另一家公司对接,要求用对方提供的测试程序测试我们做的DLL. 接到对方的测试程序,发现和我们以前调用DLL的方式不太一样.但我稍微看了一会代码也看懂其意思了,一天搞定了. 但其中也遇到些小困惑, ...
- wpf 工程生成dll
在WPF项目里,当工程里包含窗体时候, 不可以使用类库的方式生产dll,虽然系统支持引用exe 文件,但总是觉得不如dll习惯,后来发现,新建个项目,类型选择“WPF自定义类件库”,名称和工程名称相同 ...
- C#调试C++DLL库
C#调试C++DLL库 https://blog.csdn.net/gggg_ggg/article/details/51086089 对于托管代码调用非托管DLL文件,已经是非常普遍的事情,下面写一 ...
随机推荐
- linux下主要是VirtualBox及GuestAdditions的安装
Linux版本的VirtualBox下载:http://www.virtualbox.org/wiki/Linux_Downloads.请下载对应的版本. RedHat.RHEL:rpm -i vh ...
- javascript数组去重算法-----2
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- php操作路径的经典方法
function create_folders($dir){ return is_dir($dir) or ( create_folders( dirname( $dir ) ) and mkd ...
- 多线程编程 - GCD(转)
原文:http://blog.csdn.net/q199109106q/article/details/8566300 一.简介 在iOS所有实现多线程的方案中,GCD应该是最有魅力的,因为GCD本身 ...
- usb键鼠标驱动分析
一.鼠标 linux下的usb鼠标驱动在/drivers/hid/usbhid/usbmouse.c中实现 1.加载初始化过程 1.1模块入口 module_init(usb_mouse_init); ...
- 百度Android语音识别SDK语义理解与解析方法
百度语义理解开放平台面向互联网开发人员提供自然语言文本的解析服务,也就是能够依据文本的意图解析成对应的表示. 为了易于人阅读,同一时候也方便机器解析和生成,意图表示协议採用 json 语言进行描写叙述 ...
- openstack之horizon源码分析之二
一.概述: django基础入手: django新建project:#django-admin startproject mysite 生成如下目录: mysite ├── manage.py └── ...
- [RabbitMQ]Error: unable to connect to node rabbit@compute1: nodedown(CentOS7.0)
今天在搭建OpenStack的时候需要安装RabbitMQ,可是使用yum install rabbitmq-server安装之后,按照OpenStack官方提供的文档修改guest用户密码的时候却出 ...
- 让Linux修改IP、DNS等可以更简单
修改IP: 可以用 netconfig,可惜每次都得输入完整的IP.掩码.网关和DNS. 不如直接 vi /etc/sysconfig/network-scripts/ifcfg-eth0 再 /et ...
- js访问 xmldom
加载XML文档: var xmlDom = new ActiveXObject("MSXML2.DOMDocument"); xmlDom.load("file ...