最近写了一个socket通信的手表在线服务端,在日志方面,记录下Log4net日志分割

1.引入log4net.dll

2.web.config添加configsection handler 映射:

  1. <configuration>
  2. <configSections>
  3. <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
  4. </configSections>
  5. </configuration>

3.建立 log4net.config 文件,此文件在logs文件夹下面按日期生成

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <log4net>
  3. <!-- OFF, FATAL, ERROR, WARN, INFO, DEBUG, ALL -->
  4. <!-- Set root logger level to ERROR and its appenders -->
  5. <root>
  6. <level value="ALL"/>
  7. <appender-ref ref="SysAppender"/>
  8. </root>
  9.  
  10. <!-- Print only messages of level DEBUG or above in the packages -->
  11. <logger name="WebLogger">
  12. <level value="DEBUG"/>
  13. </logger>
  14.  
  15. <appender name="SysAppender" type="log4net.Appender.RollingFileAppender,log4net" >
  16. <param name="File" value="Logs/" />
  17. <param name="AppendToFile" value="true" />
  18. <param name="RollingStyle" value="Date" />
  19. <param name="DatePattern" value="&quot;Logs_&quot;yyyyMMdd&quot;.txt&quot;" />
  20. <param name="StaticLogFileName" value="false" />
  21. <layout type="log4net.Layout.PatternLayout,log4net">
  22. <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
  23. <param name="Header" value="
  24. ----------------------header--------------------------
  25. " />
  26. <param name="Footer" value="
  27. ----------------------footer--------------------------
  28. " />
  29. </layout>
  30. </appender>
  31. <appender name="consoleApp" type="log4net.Appender.ConsoleAppender,log4net">
  32. <layout type="log4net.Layout.PatternLayout,log4net">
  33. <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
  34. </layout>
  35. </appender>
  36. </log4net>

4.按大小分割的映射文件

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <log4net>
  3. <!-- OFF, FATAL, ERROR, WARN, INFO, DEBUG, ALL -->
  4. <!-- Set root logger level to ERROR and its appenders -->
  5. <root>
  6. <level value="ALL"/>
  7. <appender-ref ref="SysAppender"/>
  8. </root>
  9.  
  10. <!-- Print only messages of level DEBUG or above in the packages -->
  11. <logger name="WebLogger">
  12. <level value="DEBUG"/>
  13. </logger>
  14.  
  15. <appender name="SysAppender" type="log4net.Appender.RollingFileAppender">
  16. <param name="File" value="Logs\Logs.txt"/>
  17. <param name="AppendToFile" value="true"/>
  18. <param name="MaxSizeRollBackups" value="12"/> <!-- 切割最多文件数 -->
  19. <param name="MaximumFileSize" value="500KB"/> <!-- 每个文件的大小 -->
  20. <param name="RollingStyle" value="Size"/>
  21. <param name="StaticLogFileName" value="true"/>
  22. <layout type="log4net.Layout.PatternLayout">
  23. <param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n"/>
  24. </layout>
  25. </appender>
  26. </log4net>

我的注解:

配置文件是用反射和名称生成对应的类的声明, RollingFileAppender  SysAppender 对象,下面是这个类的各个参数。这个类一般是这样设计的

log4net日志分割,按大小分割的更多相关文章

  1. 0x04 Python logger 支持多进程日志按大小分割

    目录 支持多进程日志按大小分割 多进程日志大小分割handler配置实例 支持多进程日志按大小分割 由于python内置模块logging.handlers.RotatingFileHandler是不 ...

  2. logback日志无法按日期分割的问题

    发现在线上的时候,日志无法按日期分割的问题,所有日志都在第一天部署的那个日期的文件里面. 背景是Springboot + logback 原因是: 之前是: 用timeBaseRollingPolic ...

  3. JAVA将byte数组(byte[])按照指定大小分割成多个byte数组

    /** * 将byte数组按照指定大小分割成多个数组 * @param bytes 要分割的byte数组 * @param subSize 分割的块大小 单位:字节 * @return 指定大小的by ...

  4. LOG4NET日志配置及使用

    Log4net的安装 Install-Package log4net 1.先弄个日志记录的类 /// <summary> /// 使用LOG4NET记录日志的功能,在WEB.CONFIG里 ...

  5. log4net日志组件

    转载:http://www.cnblogs.com/knowledgesea/archive/2012/04/26/2471414.html 一.什么是log4net组件 Log4net是基于.net ...

  6. log4net 日志配置及使用

    一.log4net按照不同的[LEVEL]级别输出到不同文件 <log4net> <!--错误日志:::记录错误日志--> <!--按日期分割日志文件 一天一个--> ...

  7. 如何在通用权限管理系统中集成log4net日志功能

    开发人员都知道,在系统运行中要记录各种日志,自己写一个日志功能,无论是在效率还是功能扩展上来说都不是很好,目前大多用的是第三方的日志系统,其中一个非常有名,用的最多的就是log4net.下面是关于这个 ...

  8. Log4net日志使用教程-控制台、文本、数据库三种记录方式

    一.log4net简介: 1. Log4net的优点: 几乎所有的大型应用都会有自己的用于跟踪调试的API.因为一旦程序被部署以后,就不太可能再利用专门的调试工具了.然而一个管理员可能需要有一套强大的 ...

  9. 图片像素对比OpenCV实现,实现人工分割跟算法分割图像结果的对比

    图片对比,计算不同像素个数,已经比率.实现人工分割跟算法分割图像结果的对比,但是只能用灰度图像作为输入 // imageMaskComparison.cpp : 定义控制台应用程序的入口点. // / ...

随机推荐

  1. <Docker学习>5. docker数据管理

    当我们创建了一个tomcat容器,如何简单部署一个web应用?如何将war包放入到容器中?也就是说怎么样把文件从宿主机中 "放入" 到容器中? docker cp命令可以将宿主机本 ...

  2. MyFirstDay_答案_1.**猫(自己整理)

    1>***猫: python基础类: 字符串反转的常用处理方式: # 方法一:使用字符串切片 s = "hello python" result = s[::-1] prin ...

  3. GDOI--DAY2 游记

    今天,熬夜不够多,果然,不出所料,爆零了... 第一题,看到数据之大,懵逼了,于是,敲了个二分SPFA,但是!最大的点GG了,呜呜~~~~(>_<)~~~~ ,于是,就不继续做第一题了(虽 ...

  4. HyperLedger Fabric 1.4 比特币历史(1.1)

    比特币是一种数字货币,也是一种创新思维,把人们带入到一个无中心化.完全可信任.安全可靠的全新思维领域:一个叫“中本聪”的人或组织,使我们思维产生化学反应,他在2008年10月31日发表了比特币白皮书& ...

  5. c++ 计算器 带括号 代码实现

    我用了两个栈 一个用来存数字 一个用来存运算符 这里引入优先度的概念便于理解 不同的运算符有不同的优先度 当优先度高的符号进入栈中 所有比它优先度低的符号都要弹出 对 就是这么霸道 ( 没有优先度 没 ...

  6. 流量操控之SSH隧道与端口转发

    目  录 第1章            概述... 3 1.1.         实现命令... 3 1.2.         SSH隧道类型... 3 第2章            SSH隧道... ...

  7. User_Authentication_Personalization Model

    花了一天时间实现了一个 简单的用户登录验证的小模型. 基本实现了现在 用户登录模块的绝大多数功能, 也算是 熟悉了一下系统的逻辑. 在这个小模型中, 实现了以下的基本功能 : Logging in a ...

  8. Jenkins拾遗--第四篇-适当的让构建失败

    问题的引出: 有一段我们的前端构建总会现git上分支名称中的版本号和工程里的版本号不一致的问题:这样会导致构一个问题:构建后的产品名称叫做1.1,但是进入app的关于页面,看到的版本还是1.0.这会让 ...

  9. Eureka 向Server中注册服务

    Eureka支持注册与发现服务,本章讲解如何像服务中心注册服务. 在父工程下创建EurekaClient工程(eureka-provider): pom.xml <?xml version=&q ...

  10. BETA(1)

    目录 组员情况 组员1(组长):胡绪佩 组员3:庄卉 组员4:家灿 组员5:凯琳 组员6:翟丹丹 组员7:何家伟 组员8:政演 组员9:黄鸿杰 组员10:刘一好 组员11:何宇恒 展示组内最新成果 团 ...