Log4net——Appenders 文件日志

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: (一)文件日志 (1)写日志到文件 把日志保存到D盘的myLog文件夹中的x.log文件中 这里,要保存的信息为:   格式:为年-月-日 时:分:秒 –信息(每条一行)                       测试如下: mylog.

(一)文件日志

1写日志到文件

把日志保存到D盘的myLog文件夹中的x.log文件中

这里,要保存的信息为:

 

格式:为年-- 时:分:秒 信息(每条一行)

 

<appender xmlns="" name="apenderforLog" type="log4net.Appender.FileAppender">

    <file value="D:myLogs\x.log"/>

    <layout type="log4net.Layout.PatternLayout">

      <conversionPattern value="%date{yyyy-MM-dd HH:mm:ss} - %message %newline" />

    </layout>

  </appender>

测试如下:

mylog.Info("开始记录日志……");

mylog.Error("用户多次登录不成功!");

mylog.Info("日志追加结束.");

 

结果:

 

2009-12-10 15:33:04 - 开始记录日志……

2009-12-10 15:33:04 - 用户多次登录不成功!

2009-12-10 15:33:05 - 日志追加结束.

 

提示:这里说明一下,两个转换器的作用

·date 发生日志事件的本地时间。date后面还可以跟一个日期格式,用大括号括起来。

例如:%date{HH:mm:ss,fff}默认将使用ISO8601 格式。

·message由应用程序提供给日志事件的消息,简写格式为:m

2日志追加并发控制

 于多进程同时写入日志文件(这个没有测试过)

<appender xmlns="" name="apenderforLog" type="log4net.Appender.FileAppender">

    <file value="D:myLogs\x.log"/>

    <appendToFile value="true" />

    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />

    <layout type="log4net.Layout.PatternLayout">

      <conversionPattern value="%date{yyyy-MM-dd HH:mm:ss} - %message %newline" />

    </layout>

  </appender>

 

lockingModel有两个枚举。

(二)日志的文件名自动生成

这里的输出源要用到 RollingFileAppender

RollingFile输出源类型枚举有:

Once:一个文件(不确定)

Size:按文件容量格式生成

Date:按日期定义格式生成

Composite:混合文件容量与系统日期

1)日期规则

文件名:年--.log

格式:为年-- 时:分:秒 信息(每条一行)

 

配置文件如下:

<appender xmlns="" name="apenderforLog" type="log4net.Appender.RollingFileAppender">

    <file value="D:myLogs\" />

    <appendToFile value="true" />

    <rollingStyle value="Date" />

    <datePattern value="yyyy-MM-dd&quot;.log&quot;" />

    <staticLogFileName value="false" />

    <layout type="log4net.Layout.PatternLayout">

      <conversionPattern value="%date{yyyy-MM-dd HH:mm:ss} - %message %newline" />

    </layout>

  </appender>

 

提示:

·&quot;起到的作用是转义,就是把.log当作字面义,而不是时间日期的格式定义。(双引号)

·默认文件写入方式为追加,这里显示声明了

·RollingStyle也不知道这个怎么翻译,但意思大家都明白

·日期变化格式为yyyy-MM-dd.log(文件名)

·关闭固定文件名即staticLogFileName value设置为false

2Size(容量规则)

<appender xmlns="" name="apenderforLog" type="log4net.Appender.RollingFileAppender">

    <file value="D:myLogs\log.txt" />

    <rollingStyle value="Size" />

    <maxSizeRollBackups value="2" />

    <maximumFileSize value="2KB" />

    <staticLogFileName value="true" />

    <layout type="log4net.Layout.PatternLayout">

      <conversionPattern value="%date{yyyy-MM-dd HH:mm:ss} - %message %newline" />

    </layout>

  </appender>

·rolling类型为文件容量

·设置文件最大值:maximumFIleSize2K,如果超过这个大小如何处理?这个由Backups来处理

·maxSizeRollBackups 用于处理备份文件。表示备份文件的文件最大数目。如果设置为0,表示不备份日志文件,而且当日志文件容量满了之后,将会截断以前的日志信息;如果是自然数,那么当日志备份文件数目满了之后,会删除以前的日志文件备份;如果是负整数,那么将会无限制的增加日志备份文件。

<maxSizeRollBackups value="2" />

<maxSizeRollBackups value="0" />

<maxSizeRollBackups value="-1" />

 

3Composite混合型

<appender xmlns="" name="apenderforLog" type="log4net.Appender.RollingFileAppender">

    <file value="D:myLogs\x.log" />

    <rollingStyle value="Composite" />

    <datePattern value="yyyyMMdd" />

    <maxSizeRollBackups value="4" />

    <maximumFileSize value="2KB" />

    <layout type="log4net.Layout.PatternLayout">

      <conversionPattern value="%date{yyyy-MM-dd HH:mm:ss} - %message %newline" />

    </layout>

  </appender>

 

 

 

博客园大道至简

http://www.cnblogs.com/jams742003/

转载请注明:博客园

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
27天前
|
Kubernetes Ubuntu Windows
【Azure K8S | AKS】分享从AKS集群的Node中查看日志的方法(/var/log)
【Azure K8S | AKS】分享从AKS集群的Node中查看日志的方法(/var/log)
|
27天前
|
Java Apache 开发工具
【Azure 事件中心】 org.slf4j.Logger 收集 Event Hub SDK(Java) 输出日志并以文件形式保存
【Azure 事件中心】 org.slf4j.Logger 收集 Event Hub SDK(Java) 输出日志并以文件形式保存
|
1天前
|
缓存 监控 算法
分析慢日志文件来优化 PHP 脚本的性能
分析慢日志文件来优化 PHP 脚本的性能
|
11天前
|
消息中间件 存储 监控
Kafka的logs目录下的文件都是什么日志?
Kafka的logs目录下的文件都是什么日志?
30 11
|
9天前
|
Java
日志框架log4j打印异常堆栈信息携带traceId,方便接口异常排查
日常项目运行日志,异常栈打印是不带traceId,导致排查问题查找异常栈很麻烦。
|
19天前
|
存储 监控 数据可视化
SLS 虽然不是直接使用 OSS 作为底层存储,但它凭借自身独特的存储架构和功能,为用户提供了一种专业、高效的日志服务解决方案。
【9月更文挑战第2天】SLS 虽然不是直接使用 OSS 作为底层存储,但它凭借自身独特的存储架构和功能,为用户提供了一种专业、高效的日志服务解决方案。
50 9
|
26天前
|
Java 应用服务中间件 HSF
Java应用结构规范问题之配置Logback以仅记录错误级别的日志到一个滚动文件中的问题如何解决
Java应用结构规范问题之配置Logback以仅记录错误级别的日志到一个滚动文件中的问题如何解决
|
20天前
|
API C# 开发框架
WPF与Web服务集成大揭秘:手把手教你调用RESTful API,客户端与服务器端优劣对比全解析!
【8月更文挑战第31天】在现代软件开发中,WPF 和 Web 服务各具特色。WPF 以其出色的界面展示能力受到欢迎,而 Web 服务则凭借跨平台和易维护性在互联网应用中占有一席之地。本文探讨了 WPF 如何通过 HttpClient 类调用 RESTful API,并展示了基于 ASP.NET Core 的 Web 服务如何实现同样的功能。通过对比分析,揭示了两者各自的优缺点:WPF 客户端直接处理数据,减轻服务器负担,但需处理网络异常;Web 服务则能利用服务器端功能如缓存和权限验证,但可能增加服务器负载。希望本文能帮助开发者根据具体需求选择合适的技术方案。
56 0
|
20天前
|
C# Windows 监控
WPF应用跨界成长秘籍:深度揭秘如何与Windows服务完美交互,扩展功能无界限!
【8月更文挑战第31天】WPF(Windows Presentation Foundation)是 .NET 框架下的图形界面技术,具有丰富的界面设计和灵活的客户端功能。在某些场景下,WPF 应用需与 Windows 服务交互以实现后台任务处理、系统监控等功能。本文探讨了两者交互的方法,并通过示例代码展示了如何扩展 WPF 应用的功能。首先介绍了 Windows 服务的基础知识,然后阐述了创建 Windows 服务、设计通信接口及 WPF 客户端调用服务的具体步骤。通过合理的交互设计,WPF 应用可获得更强的后台处理能力和系统级操作权限,提升应用的整体性能。
44 0
|
23天前
|
存储 消息中间件 监控
Java日志详解:日志级别,优先级、配置文件、常见日志管理系统ELK、日志收集分析
Java日志详解:日志级别,优先级、配置文件、常见日志管理系统、日志收集分析。日志级别从小到大的关系(优先级从低到高): ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF 低级别的会输出高级别的信息,高级别的不会输出低级别的信息