温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

演示如何利用log4net记录程序日志信息

发布时间:2020-05-24 08:14:56 来源:网络 阅读:1110 作者:wolfxin2010 栏目:编程语言

log4net是一个功能著名的开源日志记录组件。利用log4net可以方便地将日志信息记录到文件、控制台、Windows事件日志和数据库(包括 MS SQL Server, Access, Oracle9i,Oracle8i,DB2,SQLite)中。并且我们还可以记载控制要记载的日志级别,可以记载的日志类别包括:FATAL(致命错 误)、ERROR(一般错误)、WARN(警告)、INFO(一般信息)、DEBUG(调试信息)。要想获取最新版本的log4net组件库,可以到官方 网站http://logging.apache.org/log4net/下载。现在的最新版本是1.2.11。

log4net示例步骤:

1.添加log4net.dll引用

2.配置log4net文件

文件名的命名规则(WinForm对应的是*.exe.config,WebForm对应的是*.config);配置文件内容如下:

 

  1. <?xml version="1.0" encoding="utf-8" ?> 
  2. <configuration> 
  3.   <configSections> 
  4.     <section name="log4net" type="System.Configuration.IgnoreSectionHandler" /> 
  5.   </configSections> 
  6.   <!-- This section contains the log4net configuration settings --> 
  7.   <log4net> 
  8.     <!-- Define some output appenders --> 
  9.     <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender"> 
  10.       <param name="File" value="Log/log.txt" /> 
  11.       <param name="AppendToFile" value="true" /> 
  12.       <param name="RollingStyle" value="Date" /> 
  13.       <param name="DatePattern" value="yyyy.MM.dd" /> 
  14.       <param name="StaticLogFileName" value="true" /> 
  15.       <layout type="log4net.Layout.PatternLayout" > 
  16.       <!--每条日志末尾的文字说明--> 
  17.       <!--<footer value="by XMGPS" />--> 
  18.  
  19.       <!-- 
  20.               %m(message):输出的日志消息,如ILog.Debug(…)输出的一条消息 
  21.               %n(new line):换行 
  22.               %d(datetime):输出当前语句运行的时刻 
  23.               %r(run time):输出程序从运行到执行到当前语句时消耗的毫秒数 
  24.               %t(thread id):当前语句所在的线程ID 
  25.               %p(priority): 日志的当前优先级别,即DEBUG、INFO、WARN…等 
  26.               %c(class):当前日志对象的名称,例如: 
  27.               %f(file):输出语句所在的文件名。 
  28.               %l(line):输出语句所在的行号。 
  29.               %数字:表示该项的最小长度,如果不够,则用空格填充,如“%-5level”表示level的最小宽度是5个字符,如果实际长度不够5个字符则以空格填充。 
  30.          --> 
  31.         <param name="ConversionPattern" value="datetime:%d thread id:[%t] line:%l class:%c - %m%n" /> 
  32.       </layout> 
  33.     </appender> 
  34.     <!-- Setup the root category, add the appenders and set the default priority --> 
  35.     <root> 
  36.       <level value="ALL" /> 
  37.       <!--文件形式记录日志--> 
  38.       <appender-ref ref="LogFileAppender" /> 
  39.     </root> 
  40.   </log4net> 
  41. </configuration> 

注意:将配置好的文件放置到您的可执行目录下;eg:

演示如何利用log4net记录程序日志信息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***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***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***ZO/s1F8g/IXv8mey0AMLIIb03b1zo2HhHwG5G90wnplOD8JWnIm0csLm72sY69IHXD52fWL0xbtyj9N9zNuJW7PICiRoOTlzUajSaE9wWDHBQAIolwudmPE8wOMUeAmwHA1c0+1rE/P7NuYdraL87+9uW51bibPeXKKGo0GnEr92tZrVar1UhQ3Uz8IqDbFxoAAAgrw6OmjYKbgYjBxc0+1rEXpa/94uyaL8+t/irzV9zNuJU95c0uXkYQRKVSBTlvJlSVQcwAEFEMsZtTEhNSPGs4hTRQcDMQSbi42cc69hfn1nyZsfqrzF8Wn1+Fu5ksV3YUsZ3SZVzMKpUSfusCAEYJQ1nTDrCODW4GIgoXN/tYx/4q49fFmb98fWHVN1krcTfjVvaUNzvSZdzLSqVSqQQ3A8BoYcjcHAQxg5uBSMDFzT7WsRefX/X1hZXfZK2IyV6Ou9k5V+4tYePXfPVZGU+Xe8WsUCjAzQAwSojk881Q0wYiERc3+1jHdoj525xluJtxK3vKm4lWxsUMbgaA0QO4GQD8g+jm1NTsy0WN/sbpMzkSsbj3xLKuL1l2LmI7vKwgAG4GgFFCSGvawaljg5uBiILo5p4eu0Qs9iWkEolMKiUu0ev1fUVstacitgvgZgAYJYTOzcEXs99u9vZb7o67C/U+734HL7dvleCrkP2wVKzTr9zBDcBGNi5u9iXwO3+ZzSYURY1Gx/1ENG5XYrsWsQN0s089n7R3DuZZAACCRojcjGJWNKw1bfz+wFQq+Z2x+++6QP4rc+R31BbRKLEUiuvN9Z1vB+Z2d0G4q+CIIwA3BzF8ument55PdjvtIDwLAEAwCbqb+xPlCDjf7MOvVpDdqtDDZiIaJZZKc3lORKM43YuY9GdpgZEE7uYwhg81bW9dmPR28oN9FgCAoBJcN4ekjh2SN5Op2dOdhXv35vQ0/oD8NwFg/hqZMNtYm7ZuD2NUV1e3t7drtVrPbfTQ9xhU4lLSHx4P8FkAAIJKyNwcbCsH2c19p5fJ5y/yWYfwo/Sxzj+H5+zmYX2+2eWH2UMR4X6JgwVFUYlE0tbW1hQm2tvb5XK52Wz23EbPZ2U8+3UwzwIAEFxC4+bQiDlEebPbr7V72sTxVN+JN7IfinfNqiMpcx4C744GT1utVhRFNRqNKkxotVqvYrZB3gwAw50QuDlkYg6Fm10nGW9bEJ5jUJ1+8daTm8M9g4VdvSNb0hGMZzf390e3dQbzLAAAQSXYbg6lmAfrZsd1poQfxyNce2qzDeBS4t7w0jXJT8IPZd4cdqGCniMVDz3f7fOlaJDPAgAQGoLq5oHEHJRISkry9TtUBKgMJw8Tnia400XUZPskv1DV0/nmYIs57PoESUc8A/R8wvNkn0/9fRYAgNAQtHmwrq4uKSkpLsQkJCTk5OQIhcJgNTsyCbsdwx7h/g8AAACEk6BNgnq9XigUdoYeoVCo1+uD1exII+xSjLQI9z8EAAAgDMDcFxGEXYFDo8MIbBIAAEAEArPe0DGCpRsAw7rxAAAAIQWmvBACMh7QkfeKAAAABk/QJruwe2jURrD+g2Fk1L5wAAAAUoIwwYVdTqMtBv8vi0zgrQAAAMAZ1OwWdkuN4AjWP3jYAe8VAABAgPNa2NU1giO4/+DhC7xpAACMWgKZ1MJur5EXQf+/jhjgPQQAYBQCbgYHRzrw9gIAMNrwezoLu96GXYTi3zYKgbcaAIDRg3/TGUyOQHiBHggAwGggmG4OURMBwAXohAAAjGz8mMtgQgQiB+iKAACMYILg5tA1DgC8AL0RAICRymDd7HiWGTwY9Cs8Hs9oNIbg9QJDCSs+asyYMWNi4uOjxkTFs4K898j8sAgDYRiQE9PXH1nxUWNicsLdHgBwI2huptPpJhQdZOh0Op1OV1tTc+TIkdbWVoPBYLVaA3pdwRtyrPioMYMUS6+i+hgtU0H//4A1itwcrIGAIEhAAwF6vg+Am4GIJ5hutttsnsNqsw4QJpMJn5I4HE5NVdXZs2fpdLperw9Iz8Eacqz4qKioQMRCbIBzY3JiImmWCiH9E2BoiFg3Y4NjcAMBer4PgJuBiGdo3DywmG1Wi8lk0uv1Wq1WLpdnZma2NDefPn26sbExID0HZ8ix4qOi4lkBOcbzDBW01kU6oXazLSJPOQfFzYMYCNDzfQDcDEQ8Q+Bmn8Rss1qsFovJZDIYDAaDITMzk8fjtTQ3HztGbWho8L+4TTrkcmLIy2uO5VHx8YTZCJ+fnByTE4Ov07s2y33PfVsQH7s3hrjEZdu+o+T0lgNjcvpXIT2ih2TEdbes+CjHmjkxTn+67dzjTjwcl+RtIawXk+P0Bnh5twNiRLrZarUOYiCM8p6P779/HcIaxA3HOLuZdH0ACCchdbOvVsbFjIfZbManJKVSic9Kqamp/mfP7pNCTgxxhPfbieAppzNs/XtwnqH61u4/h6rjPKvhz3vNHvqXkG6bE+OiuP4j9reZ7LUQX6z7bvuW9j9Jvhr5OzbQe+h+apksOfH0bgfIiHQzTqADYZT3fPwMN9H+7i+WuBdP6wNAmAmdm/1Il13Das3MzDSbzTqdDp+VTp8+7ee5Z7dJwbU817eCy/K+hy4f750+17snF8647YB0hvKyLfEoZH97ei3EV0GyW8cTZDmwa3ZCVpL2eFyyt4XUzR7e7YCJKDejbW3q9PSuFStEX34pmDOH9847/NmzBV98IVu/Xp2ebmKxAkig/R8Io7vnuy4Z4MV6XB8Awk2I3DwIMfe5GU8dHLMSlUr1J3v2ZYYiG+29D12uL3VUuzzMUCSC8TpDOTYh4zaAGcotvyV3npubvajRJzeT5k+jzs36ykrZ778LPvlEMn++8ueftVu3GnftQrdv161cqfryS+m8eYL33+fMmSNeu1ZfWemvm/0cCKO754ObgZFC0N3si5W9itlisVos+JTkMislJSU1NTUZDAYfGutDZa/fIANUWQfIHlzLZa5lOLKrVYmTjvu2A81Qnl6LU7HRfbe9KzpXnd1WI99JTnxfsuPhPfTNzSOupo0KBPKEBMGCBbKvvzaeOmUtK7OVltry8y0pKeZ9+0x//mlcv17/88+aBQtUH37ImzWr8/33JTt2mEUiH/Xs/0AY5T2feFkF8YG3Aj7Z+gAQZoLr5kBOMDuHGY9MMmqqquLi4rhcrg+Ndf74T5iMiLmA27rkVycNNEM5Hc2x395l7rkIyQd9l20HnKE8vBaCdd1363qOrX8idd4L+U7cr+RyWeijmwd+t/0ivG42NDWJli+XLFhgSE62NjXZWlps9fW2a9esFy9aTp40JyaiFIpx7Vrj6tX6JUvU8+YpZ8+WvPVW++uvdy5erG9oGFDMPT12/wfCKO/5rPioMTEx3i8FI75Yz+sDQFgJpptdNPzSKiExcDHnlzTnlzTnlTTnXW3Ou9qUe6Up70pT7pVGopj7w2q1Wq34BatyuZzD4dTW1JSUlCiVyhC8FTabLQhVVsAPhnNN29DYKPj22+4vvzQXFtquX7d1dNhaWmy1tbarV61ZWebjx00JCejWrcY1awwrV+p/+EH9wQfI7NmK6Gjxyy+3P/fc1ddnbll3+Nu/ir79q+iL+OL5O67MoVyd9UeJ3W7rsdt6euw9PXZicTvkA2GE9HwoSgMjhBC62c86dq+PLWaSQPvulIQgyN69ezs6OoL3DrDio8iu3wRCQpDf7XC5GeXzBT/9JFuwwHL5so3JtLW12VpbbQyGrbzcWlBgSU83Hz5s2rkT3bDBuGqVYdky/dKl6jlz1O+9p3r77e6XXxY89VTzI4+0fPIJyuf7fvoZw7CgDoQR2fPBzcAIYWjc7FMdm0zMJkcYjUatVmtC0WPHjnG53EDv5UkGobY2IqanyCao73a43CyNjxd+/LGJSrXV1dnodFtDg62+3lZebi0stGZmmo8fN+3Zg27ZYvz1V8PPP+t/+EEXE6N+7z11dDQyY4YiKkr8xBNdkyfXPvhg+5o1frkZwzDHQEhISGhvbx/UyxiBPR/cDIwQhsDNAafLJmKYTSaj0WhCUTxdCKabgWFLWNysKSvrmjdPu2qV7epVW1mZraLCVlFhKymxFhRYMjPNx471VrNXr9b/9JP+u+90MTG6hQuR6Ghkxgzk5ZeVzz4reeQRzj33NN12W9ljj8kvX/bLzWazmTgQQv1iAQAICyF084sruC8u5/53OffF5dwXl3NxGeddbcq90ph7pelicWNOccPF4oac4oacoobsyw3ZlxuyChkXCulZl+gXLtHPX6o/f6k+s6DObDI5wpEuWCyWELwbwDAjLG7m/vqrYO5c019/2fLybDSaraDAmp9vzc62pKWZjxxBd+82bt5s+PVXfWysbskS3Vdf6RYuVM+Zg4tZ9cILiieekDzwAPtf/2q59daS225LiXqTeL551h8lr2+69tLGa8+tK3vqt7KHfy2fvLJi0vLKScudvnwVnLwZAIBIJXRuDriObXZJlwmB4ukCi8UCNwO2cLhZ19zMio6Wf/yxad8+y+nTlvR0a3q65fRpy4kTpgMH0B07jBs3Glat0v/wg+7rr3WLFmnnz9d88EG/mJ98Uvbgg8J77um6447mm2+uHDu2YNIkpL7e38q2YyCE9MUCABAuQuTmoNWxiWLG3ZyYmAh6M4Az9G6WHj/e/sYbio8+MsXHm5OSzIcPm5OSzAcOmPbsQbdtM65da1i2TLd0qfaLL7Sffab96CP17NnIjBnISy+p/vMf5VNPdT/8sPjee3n//Gf73//eOH581Y035t9yC+P33/EfafbLzfhACOmLBQAgXITCzUEQs7OVe8WMu3nfvn3gZgBn6N18/aefOmfMkM+di27YYN692xQfb9q1C92+Hd20ybh7teGnn3QxMdpFi7Qff6z54AP1rFnI9Omq//5X9cILqqlT5VOmSCZP5t911/Vbb2VOmNAwfnzV+PH5EybkRkUxGAwej6fRaGy+GdoxEEL6YgEACBdBd3O/mP8T2/Gf2I7/xLa/8GPHC7HtuJhzihuzixqyixqyLzOyChlZhfSswt6zy5kFeNRl0Ooy8mvP5deey685m1fjEPPIcrOIRomNjY2l0miUWApNNARHC/ZR+vfJoMZSGUHdt48MvZub33mn87XXZO+/r1uyxPTHH6YtW9DffzeuW2dctUr/44+6b77Rfv659uOP1e+/r545E3ntNdWLL6qef141darikUekkycL77qLc9ttrJtvbr7ppvqbbqqYMIF2880pt//j1cXbX4r56+UfjryxOuO19Zdf2lj63NqyJ9eUP/RL+eQVlZOWV01aXjWK3SyiUcLUw3wl8lsIDDOC6+bBflGKtI4diJsZ1FgnFTGosbGxVEafEd0txaD2L/ZlmDGosX0ENCL7jxEKa5Ifb5BH6f0w0QuFJhqVbq574YXOF1+UzpypmjNHFxNjXL3auHq1YcUK/fff677+WrtggebDD9Xvvou88Qby6quqqCjVc8+pnnpK8cgjsvvuE/3rX9yJEztuvrl1/HjG+PE1EyaU33574T//mXbTTXl5eYWFhSUlJXV1dRwOR6/X9/T0BJQ3O/2bItUWzn1p4GYG3Xz+NsCnHUbquw0MS4Lp5lCcYHYRs+95M9HOBDGJaJRYCoXioqnekeqjmx2i73sYgPQY1CEScvDmCy97G0VurnrySdbzz4tef1357rvqOXM0H3+sXbhQ98UX2gULeovYb76JTJ+OvPyyato01bPPKp98UvnII9333Sf51794Eyd23nJL6003McaPr50woWLixNK77y6ePDl17FgajXb58uWSkpKKior6+no2m63T6bzo2aubSfp9hOHcl1wG1IDrR2IDwM1AkBkCNwd4glmlNgplhiqmllarptWq82vUDZ06gdTgc02bQe1PlR0zlIhGwcvIxHEkolEoNBrVNzf37XZwgJuDQhjcPHVq85NP8l96Sf7mm+pZs9SzZqnfeQeZORN56y1kxgzktdeQV15Rvfii6oUXVE8/rXz8ceVDD3***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***wyuC8oaOHuD9BwAACBHgZtADOfC2AwAAhAtw82gUSdjfw5H0ZgIAAASdEXi+eRjF4N/8YfrfGYIXDgAAMHwJ4XXa/q4PMbIjKD0NAABgNDC8Z8yw+waCNMLdLwAAAIY3I2oaDbuTRnOE+58PAAAwcoApFYwOSgYAAIgsYG7tJeySi8AI9/8EAABglALzr3+E3ZegXgAA/n979x7WxJnocdx/z/Psnj/OnrPPnj3d7bZu26fV1l5229LW3uzaeqtarfVuvVDturRrL2qt9albaxAVBUURxYCACAIKEYgXVKxaQA0Xq4IeK+4p2q5FkUsSbnL+GJLMZCbJEIK8wPfzzB8kmZnMkPd9f3nfmcyg16OB7k7dGsCm4H5B4eV3b2d7q/OBU2w5cvXqVavV2t371Lv14pJfHh7Ur1+/fsHh5UG9dh/7it6azeXhQf2CTYFaUyeLeXuFcQjMdnVaL26h7iqLxWK32To51dXV1dXVnSoqio2NPXfuXENDg793KKfk+9RrS77rsy8nm3s8stnneoKC/Cnm8g1QbowpWIxWqpMtVOAyoIezWCytLS2ep+aWZh+T3W6vq6u7devWlStXigoKdu/ebbFY6uvr/YpnSr5Pvbbk99ovHX0S2exjLUHh6X6VeM8tVMC2rpN6bQt1l3nNZt/B3NLcZLfb6+vra2trb9y4kZGR8d3Zs8nJyaWlpX7FMyXfp15b8snm3qRPZbMpWHt4zfl8UHi4rHRL7ZOixJuCpXna5y5Xr9mxhPyxemPkz7gt63gXU/twYLDJNYvmO6q6IorxLOcD2fCiNL9iX9x7N6pnlYu77aD2P1l6pTw8yLkeU7DiT+0V9DSes1lXMLc0NzU3Ndnt9oaGhoaGhoyMjKtXr3539mxcnLGkpKTjg9uU/B5d8jX/J+qt0vg4ZPMFmxT/eA+fMsTmfzZ/W1C0fEVoN05Hj31jtVo9tFzqRsEULK8MrroiqzWKI2yuNShbKMfcrnbApGz***e99h6cz2guawp2q3Cud3Rts9a+yPbVbS80WmxP+6K1Zo3FPWWAenccz7pe1J6th9LKZr2pLAWzNDU2NkrZXF1dLcXzzp07O957puT33JKv3AZv+6u5Cxp77/lThuj8z+blK0LPVlR23TR3ccTcxRFe/l6+IrSqqsrDSa2qcu8+3OOYwe15x0O3r/eK7/XqzoWSagWaLZSXZeXvovW3p31R762yivbT3FW37dFes3pxrRZKe3dUi3ucrUdSZXMHusvuU3NzRkZGY2NjXV2dFM/JyckdPPZMye+xJV89JO1tq1S7oJnNHj5liE/cbPY5LV8Rev78+ZqaGq2t09NCadXJ9odu55f269evn6o981Sr1RvgeWO0l/WjhdIYXwsKL1e9IO2XZqdHz5rli3toobRrvqqF6kUNhDKbOxHMjmxua2uTx7PRaOxI75mS32NLvq5s9rwLZHPv0tlsPnrkcLdMUjaXlZXdvHlTa+t0jOy5yrOPMR8fvQflyJop2H0YTutsVXmjo17WVwvlaV/kh9vKw4OCgoODXA/D3TfG475orlm1uGynlAODqt1xNZda/3PXbD2UI5v1pLLXYG5qam5qkrLZLZ5jYmLKysoaGhp0bA4lv6eVfO2VmMIdwwsePjt92azjU4aYOpvNd+60dsukJ5tVI0fyESVZ8+WaV/tcCV8tlMbZJq7n1H0Rt/VrLOuzhfKwL/IWSlqvbC9dCyjaDdW+ePgvqRaX7aBby6icUda6yDZJ6z/WQ1ksFv8OMCunRmnK0FJUUBAWFlZZWaljcyj5Pa3ka69EluAaW6U/m31/yhBTN2dza+udtra21tZWT+/S1tbmVzb7izEfdJDFYnGL4Rc++UE+ScGcm382N/9sTv7ZnKNnc46WZR8pyzlSln2kVB7Mrqm5ubm5WTpz+8aNG1euXDlVVJSfn19dXd1Vu0HJ7wv4lHuO3tpv1q88PEjxFZWiiw5RZ3MHx7Hb87ipUWOy2WzSZUlu3bq1YcOGixcvBm7DKfl9AZ9yTxWYbM7OyT+UV9rRKTsn35m1Fz1wzjAr1OScAtxvlo0yUXDRUV6zWdc4tlYw252T1Wqtra2122xxcXGVlZX+XstTCyW/L+BT7pkCk82H8kqHLNjx2kfxr30c/5dP44YuNL6+2Pj6EuMbS7cPWxY7fPm2EV9tG7li68iVMaNCt7wZFj167eYx6zYdyiu9fu2azo6yM5jnrM3swjFtoIM8Z7Pf3WW7fGq0261Wq91mk/rNgcxmAKIKWDa/sTBx2KLEYYsThi/ZMWJp/Mhl8SOXx436yvjm19tHG2LHhG4bG7b1rTUx48K3jF8f/Xbk5gkbN8uzWWe/ec7azHlR6WQzxKHO5uc+qnxuQeXzCyqfW1D53IJKKYxzjpZlHynNPlK273Cp6XDJvsMlpsMlprySrEMlWYdKMg8W7z1oyTxg2XvAsufAmT0HzmTsP91otzsnu80WGRlZUVHR1NTU3XsMoMsFLJtHL905etnOMcuTxi5PfOurhHFfJ4w37Bi/Kv7t1XET1hrfWWecGLF94obYSVHbJm/aOiU6ZmrMlo72m6Vgnr8tlWyGOFTZ7Pc4dqNbd1k22aR+c3l5OdkM9AUBy+YJX+165+td7xiSJ4bunBSWNHlN0pTwpCnrEqdGJEzbsGN6VPyMzXHvbjHO3Lp9ZmzsrO2xs43bOtRvdgZzSPwushniUGZzwMax5cEsZfPGjR***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">

3.编写代码:

  1. using System; 
  2. using System.Collections.Generic; 
  3. using System.ComponentModel; 
  4. using System.Data; 
  5. using System.Drawing; 
  6. using System.Linq; 
  7. using System.Text; 
  8. using System.Windows.Forms; 
  9. using System.Reflection; 
  10. using log4net; 
  11.  
  12. //注意下面的语句一定要加上,指定log4net使用.config文件来读取配置信息 
  13. //如果是WinForm(假定程序为Log4netDemo.exe,则需要一个Log4netDemo.exe.config文件); 
  14. //将Log4netDemo.exe.config文件拷贝到可执行文件目录下; 
  15.  
  16. //[assembly: log4net.Config.XmlConfigurator(Watch = true)](在需要使用log4net的类的namespace处),如果没有这句就会在调试时得到如下留言中所说的“程序调试起来时isDebugEnable"的情况 
  17. //如果你嫌麻烦,只需要在包含Main()的类中加[assembly: log4net.Config.XmlConfigurator(Watch = true)] 
  18. [assembly: log4net.Config.XmlConfigurator(Watch = true)] 
  19. namespace Log4netDemo 
  20.     public partial class Form1 : Form 
  21.     { 
  22.         public Form1() 
  23.         { 
  24.             InitializeComponent(); 
  25.         } 
  26.  
  27.         private void bttnCreateLog_Click(object sender, EventArgs e) 
  28.         { 
  29.             //创建日志记录组件实例 
  30.             ILog log = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); 
  31.             switch (comStyle.Text) 
  32.             { 
  33.                 case "致命错误"
  34.                     log.Fatal("Fatal"new Exception(txtMessage.Text)); 
  35.                     break
  36.                 case "一般错误"
  37.                     log.Error("Error"new Exception(txtMessage.Text)); 
  38.                     break
  39.                 case "警告信息"
  40.                     log.Warn("Warn"new Exception(txtMessage.Text)); 
  41.                     break
  42.                 case "一般信息"
  43.                     log.Info("Info"new Exception(txtMessage.Text)); 
  44.                     break
  45.                 case "调试信息"
  46.                     log.Debug("Debug"new Exception(txtMessage.Text)); 
  47.                     break
  48.                 default
  49.                     break
  50.             } 
  51.             MessageBox.Show("测试成功!"); 
  52.         } 
  53.  
  54.         private void comStyle_SelectedIndexChanged(object sender, EventArgs e) 
  55.         { 
  56.                switch (comStyle.Text) 
  57.             { 
  58.                 case "致命错误"
  59.                     txtMessage.Text = "致命错误!"
  60.                     break
  61.                 case "一般错误"
  62.                     txtMessage.Text="一般错误!"
  63.                     break
  64.                 case "警告信息"
  65.                     txtMessage.Text="警告信息!"
  66.                     break
  67.                 case "一般信息"
  68.                     txtMessage.Text="一般信息!"
  69.                     break
  70.                 case "调试信息"
  71.                     txtMessage.Text="调试信息!"
  72.                     break
  73.                 default
  74.                     break
  75.             } 
  76.         } 
  77.  
  78.     } 

如需要请参考上传的附件


 

附件:http://down.51cto.com/data/2362692
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI