Java应用结构规范问题之配置Logback以仅记录错误级别的日志到一个滚动文件中的问题如何解决

简介: Java应用结构规范问题之配置Logback以仅记录错误级别的日志到一个滚动文件中的问题如何解决

问题一:如何配置Logback以仅记录错误级别的日志到一个滚动文件中?

如何配置Logback以仅记录错误级别的日志到一个滚动文件中?


参考回答:

为了仅记录错误级别的日志到一个滚动文件中,你可以在Logback配置文件中定义一个RollingFileAppender,并为其添加一个LevelFilter。这个过滤器会检查日志事件的级别,只接受错误(ERROR)级别的日志。配置示例如下:

<appender name="TOMS-ERROR-APPENDER" 
class="ch.qos.logback.core.rolling.RollingFileAppender"> 
<File>${LOG_PATH}/toms-error.log</File> 
<filter class="ch.qos.logback.classic.filter.LevelFilter"> 
<level>ERROR</level> 
<onMatch>ACCEPT</onMatch> 
<onMismatch>DENY</onMismatch> 
</filter> 
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> 
<FileNamePattern>${LOG_PATH}/logs_saved/toms-error.%d{yyyy-MM-dd}.%i.log</FileNamePattern> 
<maxHistory>5</maxHistory> 
<maxFileSize>2GB</maxFileSize> 
<totalSizeCap>10GB</totalSizeCap> 
</rollingPolicy> 
<encoder> 
<pattern><![CDATA[%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%level] [traceId:%X{EAGLEEYE_TRACE_ID}] [%class:%line] - %m %n ]]></pattern> 
<charset>UTF-8</charset> 
</encoder> 
</appender>


关于本问题的更多回答可点击原文查看:

https://developer.aliyun.com/ask/674541


问题二:如何为异常日志配置一个基于时间的滚动文件追加器,并设置其滚动策略和文件命名模式?

如何为异常日志配置一个基于时间的滚动文件追加器,并设置其滚动策略和文件命名模式?


参考回答:

要为异常日志配置一个基于时间的滚动文件追加器,你可以在Logback配置文件中定义一个RollingFileAppender,并使用TimeBasedRollingPolicy作为其滚动策略。你可以通过<FileNamePattern>来设置滚动后的文件命名模式。配置示例如下:

<appender name="TOMS-EXCEPTION-APPENDER" 
class="ch.qos.logback.core.rolling.RollingFileAppender"> 
<File>${LOG_PATH}/toms-exception.log</File> 
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
<FileNamePattern>${LOG_PATH}/logs_saved/toms-exception.%d{yyyy-MM-dd}.log</FileNamePattern> 
<maxHistory>5</maxHistory> 
</rollingPolicy> 
<encoder> 
<pattern><![CDATA[%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%level] [traceId:%X{EAGLEEYE_TRACE_ID}] [%class:%line] - %m %n ]]></pattern> 
<charset>UTF-8</charset> 
</encoder> 
</appender>

这个配置将异常日志输出到${LOG_PATH}/toms-exception.log,并根据时间(每天)进行滚动。滚动后的日志文件将按照${LOG_PATH}/logs_saved/toms-exception.%d{yyyy-MM-dd}.log的模式命名,并且只保留最近5天的日志。


关于本问题的更多回答可点击原文查看:

https://developer.aliyun.com/ask/674542


问题三:在Logback配置中,如何为名为"HSF"的logger指定一个特定的appender?

在Logback配置中,如何为名为"HSF"的logger指定一个特定的appender?


参考回答:

在Logback配置中,要为名为"HSF"的logger指定一个特定的appender,你可以在该logger的配置中通过<appender-ref>标签引用该appender。例如,如果你有一个名为"TOMS-HSF-APPENDER"的appender,你可以这样配置:

<logger name="HSF" level="${logback.info.level}" additivity="false"> 
<appender-ref ref="TOMS-HSF-APPENDER"/> 
</logger>


关于本问题的更多回答可点击原文查看:

https://developer.aliyun.com/ask/674543


问题四:如何在UnitConvertUtils工具类中实现米到千米的转换?

如何在UnitConvertUtils工具类中实现米到千米的转换?


参考回答:

在UnitConvertUtils工具类中,米到千米的转换可以通过将米数(以Long类型传入)除以米和千米的进率(RATE_OF_METRE_AND_KILOMETRE,值为1000d)来实现。如果输入为null,则方法返回null。转换方法如下:

public static Double convertMetre2Kilometre(Long toConvert) { 
if (toConvert == null) { 
return null; 
} 
return toConvert / RATE_OF_METRE_AND_KILOMETRE; 
}


关于本问题的更多回答可点击原文查看:

https://developer.aliyun.com/ask/674544


问题五:在Logback配置中,如何同时指定多个appender给同一个logger?

在Logback配置中,如何同时指定多个appender给同一个logger?


参考回答:

在Logback配置中,你可以通过在一个logger配置中多次使用<appender-ref>标签来同时指定多个appender给同一个logger。例如,对于名为"BIZ"的logger,你可以同时指定"TOMS-BIZ-APPENDER"和"TOMS-ERROR-APPENDER"两个appender:

<logger name="BIZ" level="${logback.info.level}" additivity="false"> 
<appender-ref ref="TOMS-BIZ-APPENDER"/> 
<appender-ref ref="TOMS-ERROR-APPENDER"/> 
</logger>


关于本问题的更多回答可点击原文查看:

https://developer.aliyun.com/ask/674545

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
12月前
|
存储 监控 算法
防止员工泄密软件中文件访问日志管理的 Go 语言 B + 树算法
B+树凭借高效范围查询与稳定插入删除性能,为防止员工泄密软件提供高响应、可追溯的日志管理方案,显著提升海量文件操作日志的存储与检索效率。
374 2
|
存储 Java 编译器
深入理解Java虚拟机--类文件结构
本内容介绍了Java虚拟机与Class文件的关系及其内部结构。Class文件是一种与语言无关的二进制格式,包含JVM指令集、符号表等信息。无论使用何种语言,只要能生成符合规范的Class文件,即可在JVM上运行。文章详细解析了Class文件的组成,包括魔数、版本号、常量池、访问标志、类索引、字段表、方法表和属性表等,并说明其在Java编译与运行过程中的作用。
426 0
|
存储 NoSQL Redis
阿里面试:Redis 为啥那么快?怎么实现的100W并发?说出了6大架构,面试官跪地: 纯内存 + 尖端结构 + 无锁架构 + EDA架构 + 异步日志 + 集群架构
阿里面试:Redis 为啥那么快?怎么实现的100W并发?说出了6大架构,面试官跪地: 纯内存 + 尖端结构 + 无锁架构 + EDA架构 + 异步日志 + 集群架构
阿里面试:Redis 为啥那么快?怎么实现的100W并发?说出了6大架构,面试官跪地: 纯内存 + 尖端结构 +  无锁架构 +  EDA架构  + 异步日志 + 集群架构
|
人工智能 JSON Java
列表结构与树结构转换分析与工具类封装(java版)
本文介绍了将线性列表转换为树形结构的实现方法及工具类封装。核心思路是先获取所有根节点,将其余节点作为子节点,通过递归构建每个根节点的子节点。关键在于节点需包含 `id`、`parentId` 和 `children` 三个属性。文中提供了两种封装方式:一是基于基类 `BaseTree` 的通用工具类,二是使用函数式接口实现更灵活的方式。推荐使用后者,因其避免了继承限制,更具扩展性。代码示例中使用了 Jackson 库进行 JSON 格式化输出,便于结果展示。最后总结指出,理解原理是进一步优化和封装的基础。
570 0
|
前端开发 Cloud Native Java
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现
博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现
|
传感器 监控 Java
Java代码结构解析:类、方法、主函数(1分钟解剖室)
### Java代码结构简介 掌握Java代码结构如同拥有程序世界的建筑蓝图,类、方法和主函数构成“黄金三角”。类是独立的容器,承载成员变量和方法;方法实现特定功能,参数控制输入环境;主函数是程序入口。常见错误包括类名与文件名不匹配、忘记static修饰符和花括号未闭合。通过实战案例学习电商系统、游戏角色控制和物联网设备监控,理解类的作用、方法类型和主函数任务,避免典型错误,逐步提升编程能力。 **脑图速记法**:类如太空站,方法即舱段;main是发射台,static不能换;文件名对仗,括号要成双;参数是坐标,void不返航。
707 5
|
运维 应用服务中间件 nginx
docker运维查看指定应用log文件位置和名称
通过本文的方法,您可以更高效地管理和查看Docker容器中的日志文件,确保应用运行状态可控和可监测。
2989 28
|
存储 SQL 关系型数据库
【赵渝强老师】PostgreSQL的运行日志文件
PostgreSQL的物理存储结构包括数据文件、日志文件等。运行日志默认未开启,需配置`postgresql.conf`文件中的相关参数如`log_destination`、`log_directory`等,以记录数据库状态、错误信息等。示例配置中启用了CSV格式日志,便于管理和分析。通过创建表操作,可查看生成的日志文件,了解具体日志内容。
670 3
Java相关配置
Java相关配置
1480 0
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
620 1