winform中Log4Net使用笔记
2015-07-02 15:58
260 查看
添加App.config,并添加如下内容:
如果app.config中需要添加其他节点,保证configSections在最前,否则会有以下错误提示:
启动文件Program.cs(winform):
或AssemblyInfo.cs(webform)中添加如下代码
Program.cs文件如下所示:
<appender>子节点配置说明:
<?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"> <param name="File" value="Log\Log.txt" /> <param name="AppendToFile" value="true" /> <param name="MaxSizeRollBackups" value="100" /> <param name="MaximumFileSize" value="2MB" /> <param name="RollingStyle" value="Size" /> <param name="StaticLogFileName" value="true" /> <layout type="log4net.Layout.PatternLayout"> <param name="ConversionPattern" value="%-5p %d [%c] %m%n" /> </layout> </appender> <root> <level value="all" /> <appender-ref ref="RollingLogFileAppender" /> </root> </log4net> </configuration>
如果app.config中需要添加其他节点,保证configSections在最前,否则会有以下错误提示:
System.Configuration.ConfigurationErrorsException: 配置系统未能初始化 ---> System.Configuration.ConfigurationErrorsException: 每个配置文件中只允许存在一个 <configSections> 元素,并且,如果存在该元素,它还必须是根 <configuration> 元素的第一个子元素。
启动文件Program.cs(winform):
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
或AssemblyInfo.cs(webform)中添加如下代码
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Web.config", ConfigFileExtension = "config", Watch = true)]
Program.cs文件如下所示:
static class Program { static log4net.ILog LOG = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); /// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main() { //捕获未处理异常 Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException); Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException); AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new FormMain()); } static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e) { LOG.Error(e.Exception); //throw new Exception("线程未知异常", e.Exception); MessageBox.Show(e.Exception.Message, "线程异常", MessageBoxButtons.OK, MessageBoxIcon.Error); Application.Exit(); } static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) { Exception ex = e.ExceptionObject as Exception; LOG.Error(ex); MessageBox.Show(ex.Message, "应用程序异常", MessageBoxButtons.OK, MessageBoxIcon.Error); Application.Exit(); } }
<appender>子节点配置说明:
AdoNetAppender:利用ADO.NET记录到数据库的日志。 AnsiColorTerminalAppender:在ANSI 窗口终端写下高亮度的日志事件。 AspNetTraceAppender:能用asp.net中Trace的方式查看记录的日志。 BufferingForwardingAppender:在输出到子Appenders之前先缓存日志事件。 ConsoleAppender:将日志输出到控制台。 EventLogAppender:将日志写到Windows Event Log. FileAppender:将日志写到文件中。 LocalSyslogAppender:将日志写到local syslog service (仅用于UNIX环境下). MemoryAppender:将日志存到内存缓冲区。 NetSendAppender:将日志输出到Windows Messenger service.这些日志信息将在用户终端的对话框中显示。 RemoteSyslogAppender:通过UDP网络协议将日志写到Remote syslog service。 RemotingAppender:通过.NET Remoting将日志写到远程接收端。 RollingFileAppender:将日志以回滚文件的形式写到文件中。 SmtpAppender:将日志写到邮件中。 TraceAppender:将日志写到.NET trace 系统。 UdpAppender:将日志connectionless UDP datagrams的形式送到远程宿主或以UdpClient的形式广播。
相关文章推荐
- ubuntu12.04 gitlab搭建
- 外观模式
- monkeyrunner执行脚本提示”Script terminated due to an exception“
- 伪静态规则写法RewriteRule-htaccess详细语法使用
- [华为机试练习题]37.合唱队
- Creating HTML table with vertically oriented text as table header 表头文字方向
- 在IDEA中编辑struts国际化properties文件
- 面试题18:树的子结构
- PostgreSql安装
- centos mysql移动存储目录
- Windows Azure 虚机密码忘记处理
- ConcurrentHashMap类的理解
- hdu 2102 A计划
- android Activity的生命周期
- static
- Alsa period_size/periods/buffer_size计算逻辑
- valgrind 详细说明
- .Net 与 Javascript 混合编程系列(如何穿透.net 和 js 的边界)
- 深入理解JavaWeb技术内幕之中文编码
- PHP常用文件操作函数