相关资料:

http://www.cnblogs.com/dragon/archive/2005/03/24/124254.html

注意:

//如果为了使得应用程序的配置文件(web/app.config)不至于很臃肿,把log4net的配置单独放置在
//Log4net.config文件中,那么需要应用程序的AssemblyInfo.cs添加这行代码。目的是程序启动时是找到Log4net.config配置文件。

也可以用代码进行配置:

请在 应用程序启动前调用:

  1. private void LoadLog4netConfig()
  2. {
  3. string filePath = Server.MapPath("~/Config/Log4net.config");
  4. FileInfo fileInfo = new FileInfo(filePath);
  5. //DOMConfigurator已经被XmlConfigurator取代
  6. //log4net.Config.DOMConfigurator.Configure(fileInfo);
  7. XmlConfigurator.ConfigureAndWatch(fileInfo);
  8. }

注意:

如果是分层架构中,假设LoadLog4netConfig是在程序集1中调用

  1. string filePath = Server.MapPath("~/Config/Log4net.config");
  1.  
  1. 还是指的是调用了程序集1的应用程序的目录
  2.  
  3. ~/Config/Log4net.config
    寻找,
  4.  
  5. 故,配置文件Log4net.config应该添加在调用log4net的程序集中

一些代码的用法示例:

  1. protected void Button1_Click(object sender, EventArgs e)
  2. {
  3. //注释掉其他所有的Loger,只用<root>这个父loger
  4. //再把已经注释掉其他的Loger的<appender-ref ref="LogFileAppender" />
  5. //复制到<root>,可以同时进行所有子loger向的日志方案
  6. ILog rootLog = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
  7. rootLog.Debug("I'm rootLoger");
  8.  
  9. //ILog logFileAppenderLoggingExample = LogManager.GetLogger("LogFileAppender.LoggingExample");
  10. //ILog consoleAppLoggingExample = LogManager.GetLogger("ConsoleApp.LoggingExample");
  11.  
  12. //if (null != logFileAppenderLoggingExample)
  13. //{
  14. // logFileAppenderLoggingExample.Debug("Hello, I'm LogFileAppender.LoggingExample, nothing, just say hello! ");
  15. // consoleAppLoggingExample.Debug("Hello, I'm consoleAppLoggingExample, nothing, just say hello! ");
  16. //}
  17. }

Log4net.config文件:

  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <!--
  3. .NET application configuration file
  4. This file must have the exact same name as your application with .config appended to it.
  5.  
  6. For example if your application is ConsoleApp.exe then the config file must be ConsoleApp.exe.config.
  7. It must also be in the same directory as the application.
  8. -->
  9. <configuration>
  10. <!-- Register a section handler for the log4net section -->
  11. <configSections>
  12. <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
  13. </configSections>
  14. <appSettings>
  15. <!-- To enable internal log4net logging specify the following appSettings key -->
  16. <!-- <add key="log4net.Internal.Debug" value="true"/> -->
  17. </appSettings>
  18. <!-- This section contains the log4net configuration settings -->
  19. <log4net>
  20. <!-- Define some output appenders -->
  21. <!--Appender的组件来定义输出介质-->
  22. <!--log4net.Appender.RollingFileAppender日志文件超过maximumFileSize后自动创建第二个文件-->
  23. <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
  24. <file value="rolling-log.txt" />
  25. <appendToFile value="true" />
  26. <maxSizeRollBackups value="" />
  27. <maximumFileSize value="" />
  28. <rollingStyle value="Size" />
  29. <staticLogFileName value="true" />
  30. <layout type="log4net.Layout.PatternLayout">
  31. <header value="[Header]
  32. " />
  33. <footer value="[Footer]
  34. " />
  35. <conversionPattern value="%date [%thread] %-5level %logger [%ndc] - %message%newline" />
  36. </layout>
  37. </appender>
  38. <appender name="LogFileAppender" type="log4net.Appender.FileAppender">
  39. <file value="log-file.txt" />
  40. <!-- Example using environment variables in params -->
  41. <!-- <file value="${TMP}\log-file.txt" /> -->
  42. <sppendToFile value="true" />
  43. <!-- An alternate output encoding can be specified -->
  44. <!-- <encoding value="unicodeFFFE" /> -->
  45. <layout type="log4net.Layout.PatternLayout">
  46. <geader value="[Header]
  47. " />
  48. <footer value="[Footer]
  49. " />
  50. <conversionPattern value="%date [%thread] %-5level %logger [%ndc] &lt;%property{auth}&gt; - %message%newline" />
  51. </layout>
  52. <!-- Alternate layout using XML
  53. <layout type="log4net.Layout.XMLLayout" /> -->
  54. </appender>
  55. <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
  56. <layout type="log4net.Layout.PatternLayout">
  57. <conversionPattern value="%date [%thread] %-5level %logger [%ndc] &lt;%property{auth}&gt; - %message%newline" />
  58. </layout>
  59. </appender>
  60. <appender name="NetSendAppender" type="log4net.Appender.NetSendAppender">
  61. <threshold value="ERROR" />
  62. <server value="SQUARE" />
  63. <recipient value="nicko" />
  64. <layout type="log4net.Layout.PatternLayout">
  65. <conversionPattern value="%date [%thread] %-5level %logger [%ndc] - %message%newline" />
  66. </layout>
  67. </appender>
  68.  
  69. <!-- Example of how to configure the AdoNetAppender -->
  70. <appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender" >
  71. <connectionString value="Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\Work\cvs_root\log4net-1.2\access.mdb;UID=;PWD=;" />
  72. <layout type="log4net.Layout.PatternLayout">
  73. <conversionPattern value="INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message]) VALUES ('%date','%thread','%level','%logger','%message')" />
  74. </layout>
  75. </appender>
  76.  
  77. <appender name="A" type="log4net.Appender.ForwardingAppender" >
  78. <threshold value="WARN"/>
  79. <appender-ref ref="ConsoleAppender" />
  80. </appender>
  81.  
  82. <appender name="B" type="log4net.Appender.ForwardingAppender" >
  83. <filter type="log4net.Filter.LevelRangeFilter">
  84. <levelMin value="DEBUG"/>
  85. <levelMax value="INFO"/>
  86. </filter>
  87. <appender-ref ref="ConsoleAppender" />
  88. </appender>
  89. -->
  90. <!-- Setup the root category, add the appenders and set the default level -->
  91. <!-- 在框架的体系里,所有的日志对象都是根日志(root logger)的后代。
  92. 因此如果一个日志对象没有在配置文件里显式定义,则框架使用根日志中定义的属性。
  93. 在<root>标签里,可以定义level级别值和Appender的列表。如果没有定义LEVEL的值,
  94. 则缺省为DEBUG。可以通过<appender-ref>标签定义日志对象使用的Appender对象。
  95. <appender-ref>声明了在其他地方定义的Appender对象的一个引用。
  96. 在一个logger对象中的设置会覆盖根日志的设置。
  97. 而对Appender属性来说,子日志对象则会继承父日志对象的Appender列表。
  98. 这种缺省的行为方式也可以通过显式地设定<logger>标签的additivity属性为false而改变。-->
  99. <root>
  100. <level value="All" />
  101. <!--引用的appender的名称-->
  102. <appender-ref ref="LogFileAppender" />
  103. <appender-ref ref="ConsoleAppender" />
  104. </root>
  105.  
  106. <!-- Specify the level for some specific categories -->
  107. <!-- 元素预定义了一个具体日志对象的设置。
  108. 然后通过调用LogManager.GetLogger(“testAPP.Logging”)函数,
  109. 你可以检索具有该名字的日志。如果LogManager.GetLogger(…)打开的不是预定义的日志对象,
  110. 则该日志对象会继承根日志对象的属性。知道了这一点,我们可以说,
  111. 其实<logger>标签并不是必须的。-->
  112. <!--<logger name="ConsoleApp.LoggingExample">
  113. <level value="ALL" />
  114. --><!--引用的appender的名称--><!--
  115. <appender-ref ref="ConsoleAppender" />
  116. </logger>
  117.  
  118. <logger name="LogFileAppender.LoggingExample">
  119. <level value="ALL" />
  120. --><!--引用的appender的名称--><!--
  121. <appender-ref ref="LogFileAppender" />
  122. </logger>-->
  123. </log4net>
  124. </configuration>

官网代码中的Lo4net配置文件:

  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <!--
  3. .NET application configuration file
  4. This file must have the exact same name as your application with .config appended to it.
  5.  
  6. For example if your application is ConsoleApp.exe then the config file must be ConsoleApp.exe.config.
  7. It must also be in the same directory as the application.
  8. -->
  9. <configuration>
  10. <!-- Register a section handler for the log4net section -->
  11. <configSections>
  12. <section name="log4net" type="System.Configuration.IgnoreSectionHandler" />
  13. </configSections>
  14. <appSettings>
  15. <!-- To enable internal log4net logging specify the following appSettings key -->
  16. <!-- <add key="log4net.Internal.Debug" value="true"/> -->
  17. </appSettings>
  18. <!-- This section contains the log4net configuration settings -->
  19. <log4net>
  20. <!-- Define some output appenders -->
  21. <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
  22. <file value="rolling-log.txt" />
  23. <appendToFile value="true" />
  24. <maxSizeRollBackups value="10" />
  25. <maximumFileSize value="100" />
  26. <rollingStyle value="Size" />
  27. <staticLogFileName value="true" />
  28. <layout type="log4net.Layout.PatternLayout">
  29. <header value="[Header]
  30. " />
  31. <footer value="[Footer]
  32. " />
  33. <conversionPattern value="%date [%thread] %-5level %logger [%ndc] - %message%newline" />
  34. </layout>
  35. </appender>
  36. <appender name="LogFileAppender" type="log4net.Appender.FileAppender">
  37. <file value="log-file.txt" />
  38. <!-- Example using environment variables in params -->
  39. <!-- <file value="${TMP}\log-file.txt" /> -->
  40. <sppendToFile value="true" />
  41. <!-- An alternate output encoding can be specified -->
  42. <!-- <encoding value="unicodeFFFE" /> -->
  43. <layout type="log4net.Layout.PatternLayout">
  44. <geader value="[Header]
  45. " />
  46. <footer value="[Footer]
  47. " />
  48. <conversionPattern value="%date [%thread] %-5level %logger [%ndc] &lt;%property{auth}&gt; - %message%newline" />
  49. </layout>
  50. <!-- Alternate layout using XML
  51. <layout type="log4net.Layout.XMLLayout" /> -->
  52. </appender>
  53. <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
  54. <layout type="log4net.Layout.PatternLayout">
  55. <conversionPattern value="%date [%thread] %-5level %logger [%ndc] &lt;%property{auth}&gt; - %message%newline" />
  56. </layout>
  57. </appender>
  58. <appender name="NetSendAppender" type="log4net.Appender.NetSendAppender">
  59. <threshold value="ERROR" />
  60. <server value="SQUARE" />
  61. <recipient value="nicko" />
  62. <layout type="log4net.Layout.PatternLayout">
  63. <conversionPattern value="%date [%thread] %-5level %logger [%ndc] - %message%newline" />
  64. </layout>
  65. </appender>
  66. <!-- Example of how to configure the AdoNetAppender
  67. <appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender" >
  68. <connectionString value="Driver={Microsoft Access Driver (*.mdb)};DBQ=C:\Work\cvs_root\log4net-1.2\access.mdb;UID=;PWD=;" />
  69. <layout type="log4net.Layout.PatternLayout">
  70. <conversionPattern value="INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message]) VALUES ('%date','%thread','%level','%logger','%message')" />
  71. </layout>
  72. </appender>
  73. -->
  74. <!--
  75. <appender name="A" type="log4net.Appender.ForwardingAppender" >
  76. <threshold value="WARN"/>
  77. <appender-ref ref="ConsoleAppender" />
  78. </appender>
  79. <appender name="B" type="log4net.Appender.ForwardingAppender" >
  80. <filter type="log4net.Filter.LevelRangeFilter">
  81. <levelMin value="DEBUG"/>
  82. <levelMax value="INFO"/>
  83. </filter>
  84. <appender-ref ref="ConsoleAppender" />
  85. </appender>
  86. -->
  87. <!-- Example of how to configure the AdoNetAppender to connect to MS Access -->
  88. <appender name="ADONetAppender_Access" type="log4net.Appender.AdoNetAppender">
  89. <connectionString value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Work\cvs_root\log4net-1.2\access.mdb;User Id=;Password=;" />
  90. <commandText" value="INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message]) VALUES (@log_date, @thread, @log_level, @logger, @message)" />
  91. <parameter>
  92. <parameterName value="@log_date" />
  93. <dbType value="String" />
  94. <size value="255" />
  95. <layout type="log4net.Layout.PatternLayout">
  96. <conversionPattern value="%date" />
  97. </param>
  98. </parameter>
  99. <parameter>
  100. <parameterName value="@thread" />
  101. <dbType value="String" />
  102. <size value="255" />
  103. <layout type="log4net.Layout.PatternLayout">
  104. <conversionPattern value="%thread" />
  105. </layout>
  106. </parameter>
  107. <parameter>
  108. <parameterName value="@log_level" />
  109. <dbType value="String" />
  110. <size value="50" />
  111. <layout type="log4net.Layout.PatternLayout">
  112. <conversionPattern value="%level" />
  113. </layout>
  114. </parameter>
  115. <parameter>
  116. <parameterName value="@logger" />
  117. <dbType value="String" />
  118. <size value="255" />
  119. <layout type="log4net.Layout.PatternLayout">
  120. <conversionPattern value="%logger" />
  121. </layout>
  122. </parameter>
  123. <parameter>
  124. <parameterName value="@message" />
  125. <dbType value="String" />
  126. <size value="1024" />
  127. <layout type="log4net.Layout.PatternLayout">
  128. <conversionPattern value="%message" />
  129. </layout>
  130. </parameter>
  131. </appender>
  132. <!-- Example of how to configure the AdoNetAppender to connect to MS SQL Server -->
  133. <appender name="ADONetAppender_SqlServer" type="log4net.Appender.AdoNetAppender">
  134. <bufferSize value="1" />
  135. <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
  136. <connectionString value="data source=SQLSVR;initial catalog=test_log4net;integrated security=false;persist security info=True;User ID=sa;Password=sa" />
  137. <commandText value="INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message]) VALUES (@log_date, @thread, @log_level, @logger, @message)" />
  138. <parameter>
  139. <parameterName value="@log_date" />
  140. <dbType value="DateTime" />
  141. <!--
  142. <layout type="log4net.Layout.PatternLayout">
  143. <conversionPattern value="%date{yyyy'-'MM'-'dd HH':'mm':'ss'.'fff}" />
  144. </layout>
  145. -->
  146. <layout type="log4net.Layout.RawTimeStampLayout" />
  147. </parameter>
  148. <parameter>
  149. <parameterName value="@thread" />
  150. <dbType value="String" />
  151. <size value="255" />
  152. <layout type="log4net.Layout.PatternLayout">
  153. <conversionPattern value="%thread" />
  154. </layout>
  155. </parameter>
  156. <parameter>
  157. <parameterName value="@log_level" />
  158. <dbType value="String" />
  159. <size value="50" />
  160. <layout type="log4net.Layout.PatternLayout">
  161. <conversionPattern value="%level" />
  162. </layout>
  163. </parameter>
  164. <parameter>
  165. <parameterName value="@logger" />
  166. <dbType value="String" />
  167. <size value="255" />
  168. <layout type="log4net.Layout.PatternLayout">
  169. <conversionPattern value="%logger" />
  170. </layout>
  171. </parameter>
  172. <parameter>
  173. <parameterName value="@message" />
  174. <dbType value="String" />
  175. <size value="4000" />
  176. <layout type="log4net.Layout.PatternLayout">
  177. <conversionPattern value="%message" />
  178. </layout>
  179. </parameter>
  180. </appender>
  181. <!-- Setup the root category, add the appenders and set the default level -->
  182. <root>
  183. <level value="WARN" />
  184. <appender-ref ref="LogFileAppender" />
  185. <appender-ref ref="ConsoleAppender" />
  186. <!-- <appender-ref ref="ADONetAppender_SqlServer" /> -->
  187. <appender-ref ref="NetSendAppender" />
  188. <!-- <appender-ref ref="A" /> -->
  189. </root>
  190. <!-- Specify the level for some specific categories -->
  191. <logger name="ConsoleApp.LoggingExample">
  192. <!-- <appender-ref ref="B" /> -->
  193. <level value="ALL" />
  194. <appender-ref ref="RollingLogFileAppender" />
  195. </logger>
  196. </log4net>
  197. </configuration>

另外一个配置注释:

  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <configuration>
  3. <configSections>
  4. <section name="nhibernate" type="System.Configuration.NameValueSectionHandler, System,
  5. Version=3.3.3.3001, Culture=neutral, PublicKeyToken=aa95f207798dfdb4" />
  6. <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
  7. </configSections>
  8. <log4net>
  9. <!--定义输出到文件中-->
  10. <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender,log4net">
  11. <!--<appender name="LogFileAppender" type="log4net.Appender.FileAppender">-->
  12. <!--定义文件存放位置-->
  13. <file value="log4netfile.log" />
  14. <appendToFile value="true" />
  15. <rollingStyle value="Date" />
  16. <datePattern value="yyyyMMdd-HH:mm:ss" />
  17. <layout type="log4net.Layout.PatternLayout">
  18. <!--输出格式-->
  19. <!--样例:2008-03-26 13:42:32,111 [10] INFO Log4NetDemo.MainClass [(null)] - info-->
  20. <conversionPattern value="记录时间:%date 线程ID:[%thread] 日志级别:%-5level 所在类:%logger property:[%property{NDC}] - 日志描述:%message%newline" />
  21. </layout>
  22. </appender>
  23. <!--定义输出到控制台命令行中-->
  24. <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
  25. <layout type="log4net.Layout.PatternLayout">
  26. <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
  27. </layout>
  28. </appender>
  29. <!--定义输出到windows事件中-->
  30. <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender">
  31. <layout type="log4net.Layout.PatternLayout">
  32. <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
  33. </layout>
  34. </appender>
  35. <!--定义输出到数据库中,这里举例输出到Access数据库中,数据库为C盘的log4net.mdb-->
  36. <appender name="AdoNetAppender_Access" type="log4net.Appender.AdoNetAppender">
  37. <connectionString value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:log4net.mdb" />
  38. <commandText value="INSERT INTO LogDetails ([LogDate],[Thread],[Level],[Logger],[Message]) VALUES (@logDate, @thread, @logLevel, @logger,@message)" />
  39. <!--定义各个参数-->
  40. <parameter>
  41. <parameterName value="@logDate" />
  42. <dbType value="String" />
  43. <size value="240" />
  44. <layout type="log4net.Layout.PatternLayout">
  45. <conversionPattern value="%date" />
  46. </layout>
  47. </parameter>
  48. <parameter>
  49. <parameterName value="@thread" />
  50. <dbType value="String" />
  51. <size value="240" />
  52. <layout type="log4net.Layout.PatternLayout">
  53. <conversionPattern value="%thread" />
  54. </layout>
  55. </parameter>
  56. <parameter>
  57. <parameterName value="@logLevel" />
  58. <dbType value="String" />
  59. <size value="240" />
  60. <layout type="log4net.Layout.PatternLayout">
  61. <conversionPattern value="%level" />
  62. </layout>
  63. </parameter>
  64. <parameter>
  65. <parameterName value="@logger" />
  66. <dbType value="String" />
  67. <size value="240" />
  68. <layout type="log4net.Layout.PatternLayout">
  69. <conversionPattern value="%logger" />
  70. </layout>
  71. </parameter>
  72. <parameter>
  73. <parameterName value="@message" />
  74. <dbType value="String" />
  75. <size value="240" />
  76. <layout type="log4net.Layout.PatternLayout">
  77. <conversionPattern value="%message" />
  78. </layout>
  79. </parameter>
  80. </appender>
  81. <!--定义日志的输出媒介,下面定义日志以四种方式输出。也可以下面的按照一种类型或其他类型输出。-->
  82. <root>
  83. <!--文件形式记录日志-->
  84. <appender-ref ref="LogFileAppender" />
  85. <!--控制台控制显示日志-->
  86. <appender-ref ref="ConsoleAppender" />
  87. <!--Windows事件日志-->
  88. <appender-ref ref="EventLogAppender" />
  89. <!-- 如果不启用相应的日志记录,可以通过这种方式注释掉
  90. <appender-ref ref="AdoNetAppender_Access" />
  91. -->
  92. </root>
  93.  
  94. </log4net>
  95.  
  96. </configuration>

【log4net】配置文件的更多相关文章

  1. log4net配置文件设置

    windows服务执行cmd命令 最长公共子字符串 log4net配置文件设置 2011-11-16 13:15:41|  分类: Notes |  标签: |字号大中小 订阅     log4net ...

  2. Log4net配置文件一般配置

    配置文件一般配置 <?xml version="1.0"?> <configuration> <configSections> <sect ...

  3. Window服务初级教程以及log4net配置文件初始化

    Window服务初级教程:http://www.jb51.net/article/48987.htm 另外,配置log4net这个日志功能的时候需要初始化,不然会报没有初始化的错误,而且初始化的节点应 ...

  4. log4net 配置文件配置方法

    转自:http://www.dozer.cc/2013/06/log4net-config-file-order/ 最近把项目中所有的日志都改成了 log4net ,同事也蠢蠢欲动,用起了 log4n ...

  5. AspNetCore配置多环境log4net配置文件

    前言 在之前的文章中有讲到AspNetCore多环境配置文件的应用,我们根据自己多种环境分别配置多个appsettings.$EnvironmentName.json文件. 在实际的开发中我们可能会遇 ...

  6. Log4net 配置文件组成

    Example: <?xml version="1.0" encoding="utf-8" ?><configuration><l ...

  7. log4net配置文件

    <?xml version="1.0" encoding="utf-8"?> <configuration> <configSec ...

  8. Log4net 配置文件

    <?xml version="1.0" encoding="utf-8" ?> <configuration> <!--Log日记 ...

  9. Log4Net读取XML配置文件及在代码中完成添加Logger操作

    解决问题: 将log4net配置文件与app.config配置文件分开 手动读取log4net配置文件 手动创建logger 可将日志输出功能封装在类库中,应用程序引用时无需添加assembly引用及 ...

  10. 在C#代码中应用Log4Net系列教程(附源代码)

    Log4Net应该可以说是DotNet中最流行的开源日志组件了.以前需要苦逼写的日志类,在Log4Net中简单地配置一下就搞定了.没用过Log4Net,真心不知道原来日志组件也可以做得这么灵活,当然这 ...

随机推荐

  1. C#高效率导出Excel

    首先,需要引用excel的库: Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Exce ...

  2. C++ Double Ended Queues(双向队列)

    双向队列和向量很相似,但是它允许在容器头部快速插入和删除(就像在尾部一样). Constructors 创建一个新双向队列 Operators 比较和赋值双向队列 assign() 设置双向队列的值 ...

  3. atoi 实现

    int atoi(const char *nptr); 把字符串转换成整型数.ASCII to integer 的缩写. 头文件: #include <stdlib.h> 参数nptr字符 ...

  4. PCB常用度量衡单位

    1英尺=12英寸 1英寸inch=1000密尔mil 1mil=25.4um 1mil=1000uin (mil密耳有时也成英丝) 1um=40uin(有些公司称微英寸为麦,其实是微英寸) 1OZ=2 ...

  5. 30个惊人的插件来扩展 Twitter Bootstrap

    Bootstrap Maxlength It is a lightweight plugin that allows detecting the HTML maxlength property of ...

  6. JQuery插件开发 - 模板

    (function($) { $.fn.PluginName = function(options) { // 创建一个默认设置对象 var defaults = { key : "Defa ...

  7. 批处理测试局域网网络连通性ping1-255

    for /l %%1 in (1 1 255)do ping /n 1 192.168.1.%%1       ##bat下 运行 for /l %i in (1,1,254) do ping -n ...

  8. CSS3 animation小动画

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ...

  9. 【zendstudio】如何利用zendstudio新建 或导入php项目

    一.利用ZendStudio创建 PHP Project 1. 打开ZendStudio, 选择:File à New à PHP Project, 如下图所示: 于是弹出如下界面: 在”Projec ...

  10. vc列表控件的初始化

    void CManageProcessDlg::InitList() {  m_ListProcess.SetExtendedStyle(m_ListProcess.GetExtendedStyle( ...