logback-spring.xml模板LOG_HOME说明
文章目录
- 1. 写在前面关于LOG_HOME 两点说明
- 1.1 如果不写(会有相对路径),本地运行:日志文件默认在项目根目录,会新增一个文件家:LOG_HOME_IS_UNDEFINED,jar包运行会在根目录的web下面新建LOG_HOME_IS_UNDEFINED文件夹。
- 1.2 当指定位置,会在指定位置,window会是在当前磁盘的创建。本地运行或者jar包运行位置不变。
- 2. logback-spring.xml 模板
- 3. 结果呈现
- 3.1 指定位置:
- 3.2相对位置,不指定路径
1. 写在前面关于LOG_HOME 两点说明
<!--<property name="LOG_HOME" value="/var/jenkins_home/log/application_log"/>-->
1.1 如果不写(会有相对路径),本地运行:日志文件默认在项目根目录,会新增一个文件家:LOG_HOME_IS_UNDEFINED,jar包运行会在根目录的web下面新建LOG_HOME_IS_UNDEFINED文件夹。
1.2 当指定位置,会在指定位置,window会是在当前磁盘的创建。本地运行或者jar包运行位置不变。
2. logback-spring.xml 模板
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true"><!-- 定义日志文件的存储地址 勿在LogBack的配置中使用相对路径 如果不定义不出现在项目根目录--><!--<property name="LOG_HOME" value="/var/jenkins_home/log/application_log"/>--><!-- source从配置文件yml中读取值--><springProperty scope="context" name="app_name" source="spring.application.name" defaultValue="zeus"/><property name="info" value="info"></property><property name="debug" value="debug"></property><property name="error" value="error"></property><property name="warn" value="warn"></property><!-- 控制台标准输出,debug使用 --><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern><charset>UTF-8</charset></encoder></appender><!--info日志存储--><appender name="info" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${LOG_HOME}/${app_name}/${info}/info.log</file><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>INFO</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${LOG_HOME}/${app_name}/${info}/info.log.%d{yyyy-MM-dd}.%i.log</fileNamePattern><MaxHistory>30</MaxHistory><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>100MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy></rollingPolicy><!-- 日志输出格式: --><layout class="ch.qos.logback.classic.PatternLayout"><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%-15.15(%thread)] %-50.50(%logger{50}) : %line %method %msg%n</pattern></layout></appender><!--debug日志存储--><appender name="debug" class="ch.qos.logback.core.rolling.RollingFileAppender"><!-- 指定日志文件的名称,不写就默认使用fileNamePattern标签规则 --><!--<file>${LOG_HOME}/${app_name}/${debug}/debug.log</file>--><!--过滤,只存储DEBUG级别的日志--><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>DEBUG</level><!-- onMatch 符合过滤条件的标签 --><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter><!-- 当发生滚动时,决定 RollingFileAppender 的行为,涉及文件移动和重命名TimeBasedRollingPolicy: 最常用的滚动策略,它根据时间来制定滚动策略,既负责滚动也负责出发滚动。 --><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!-- 滚动时产生的文件的存放位置及文件名称 %d{yyyy-MM-dd}:按天进行日志滚动%i:当文件大小超过maxFileSize时,按照i进行文件滚动 --><fileNamePattern>${LOG_HOME}/${app_name}/${debug}/debug.log.%d{yyyy-MM-dd}.%i.log</fileNamePattern><!-- 可选节点,控制保留的归档文件的最大数量,超出数量就删除旧文件。假设设置每天滚动,当maxHistory是30,则只保存最近一个月文件,删除之前的旧文件。--><MaxHistory>30</MaxHistory><!-- 当日志文件超过maxFileSize指定的大小是,根据上面提到的%i进行日志文件滚动 注意此处配置SizeBasedTriggeringPolicy是无法实现按文件大小进行滚动的,必须配置timeBasedFileNamingAndTriggeringPolicy --><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>100MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy></rollingPolicy><!-- 日志输出格式: --><layout class="ch.qos.logback.classic.PatternLayout"><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%-15.15(%thread)] %-50.50(%logger{50}) : %line %method %msg%n</pattern></layout></appender><!--warn日志存储--><appender name="warn" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${LOG_HOME}/${app_name}/${warn}/warn.log</file><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>WARN</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${LOG_HOME/${app_name}}/${warn}/warn.log.%d{yyyy-MM-dd}.%i.log</fileNamePattern><MaxHistory>365</MaxHistory><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>100MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy></rollingPolicy><!-- 日志输出格式: --><layout class="ch.qos.logback.classic.PatternLayout"><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%-15.15(%thread)] %-50.50(%logger{50}) : %line %method %msg%n</pattern></layout></appender><!--error日志存储--><appender name="error" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${LOG_HOME}/${app_name}/${error}/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.TimeBasedRollingPolicy"><fileNamePattern>${LOG_HOME}/${app_name}/${error}/error.log.%d{yyyy-MM-dd}.%i.log</fileNamePattern><MaxHistory>31</MaxHistory><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>100MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy></rollingPolicy><!-- 日志输出格式: --><layout class="ch.qos.logback.classic.PatternLayout"><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%-15.15(%thread)] %-50.50(%logger{50}) : %line %method %msg%n</pattern></layout></appender><!--mybatis 日志--><appender name="mybatis" class="ch.qos.logback.core.rolling.RollingFileAppender"><!--<File>${LOG_HOME}/${app_name}/mybatis/sql.log</File>--><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>DEBUG</level></filter><!-- 按天来回滚 --><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${LOG_HOME}/${app_name}/mybatis/sql.log.%d{yyyy-MM-dd}.%i.log</fileNamePattern><MaxHistory>30</MaxHistory><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><maxFileSize>100MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy></rollingPolicy><!-- 日志输出格式: --><layout class="ch.qos.logback.classic.PatternLayout"><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%-15.15(%thread)] %-50.50(%logger{50}) : %msg%n</pattern></layout></appender><logger name="com.ict.ac.dao" level="DEBUG"><appender-ref ref="mybatis"></appender-ref></logger><!-- 日志输出级别 --><root level="info"><appender-ref ref="STDOUT"/><appender-ref ref="info"/><appender-ref ref="warn"/><appender-ref ref="error"/><appender-ref ref="debug"/></root>
</configuration>
3. 结果呈现
前提:我的源代码在D盘
3.1 指定位置:
3.2相对位置,不指定路径
1 本地运行
2.jar包运行
注意服务器上jar运行时在jar包所在的目录下:
logback-spring.xml模板LOG_HOME说明相关推荐
- Spring Boot 模板引擎FreeMarker集成
Spring Boot 模板引擎FreeMarker集成 一.FreeMaker介绍 FreeMarker是一款免费的Java模板引擎,是一种基于模板和数据生成文本(HMLT.电子邮件.配置文件.源代 ...
- [转] Spring XML配置十二个最佳实践
Spring是一个强大的JAVA应用框架,广泛地应用于JAVA的应用程序.为Plain Old Java Objects(POJOs)提供企业级服务.Spring利用依赖注入机制来简化工作,同时提高易 ...
- spring.xml配置类属性--喜闻乐见
相信大家在开发的过程中,都会写一些配置文件或者配置类来,毕竟好的编码习惯是不能硬编码的,所以配置文件和配置类就显得很重要了.但是我用久了之后发现,配置文件和配置类确实好用,但是假如有多个配置的话,那么 ...
- 【JAVA秘籍心法篇-Spring】Spring XML解析源码详解
[JAVA秘籍心法篇-Spring]Spring XML解析源码详解 所谓天下武功,无坚不摧,唯快不破.但有又太极拳法以快制慢,以柔克刚.武功外式有拳打脚踢,刀剑棍棒,又有内功易筋经九阳神功.所有外功 ...
- Spring Jdbc模板插入、更新和删除示例
在Spring框架中数据访问的文章中,我们已经看到了Spring如何为各种持久性方法提供模板,以及模板如何将数据访问代码划分为固定部分和可变部分.Spring框架管理固定部分的地方,用户提供的自定义代 ...
- applicationcontext添加配置_Spring源码分析2 — spring XML配置文件的解析流程
1 介绍 创建并初始化spring容器中,关键一步就是读取并解析spring XML配置文件.这个过程比较复杂,本文将详细分析整个流程.先看涉及到的关键类. XmlWebApplicationCont ...
- 使用XML模板在excel进行配置
1.首先创建一个用于定义xml格式的模板,使用文本编辑器输入如下文本,并保存为xml格式,如:template.xml <?xml version="1.0" encodin ...
- spring事务模板使用
1.配置spring事务模板bean <!--spring 模板事务--> <bean id="transactionProxy" abstract=&q ...
- Spring xml 配置使用外部config 文件
Spring xml 配置使用外部config 文件 当使用Spring framework后, 我们一般会把db connection的信息写在spring的bean config xml里面. 例 ...
最新文章
- qtablewidget限制输入类型_对敏感型电子信号输入实施过压保护的可靠新方法
- 第6章-一阶多智体系统一致性-->6.4 切换拓扑系统一致性
- 记住,永远不要在MySQL中使用“utf8”-转
- 渴望 英语_渴望订阅– RxJava常见问题解答
- kd tree学习笔记 (最近邻域查询)
- ajax:html5上传文件,上传之前可以实现本地预览
- nginx学习文档之一 安装nginx-Linux下安装nginx
- python助教评分问题_【1414软工助教】单元测试 得分榜
- c++ 打印日志信息
- Android 签名类型
- 前端如何生成条形码---JsBarcode
- 如何使用shell限制指定用户shell程序的网络带宽
- SpringCloud--Netflix Eureka 简介
- 支付宝免签 个人支付宝到银行卡
- Requests 库 | 不可胜数的 Python 第三方库
- js 负数转换正_js 负数转换成正数的方法
- PO模式实现Appium脚本封装
- 红绿灯代码 摘抄抖音 渡一前端的
- 支付宝wap支付配置应用公钥/应用私钥
- (20181111)Fortran 产生随机数
热门文章
- 蓝桥杯Web组备赛笔记3
- Python地理坐标系和投影坐标系转换
- iPhone 13 Pro 和 Pro Max 评测
- 苹果音乐下载转换器:TunePat Apple Music Converter for Mac
- Overture乐理调式音阶小课堂
- JAVA 实现上传图片添加水印(详细版)
- 计算机整个文稿应用回顾主题,IT活动|格创计算机协会精彩活动回顾
- 为什么局域网共享的文件不能复制,提示要以计算机管理员的身,局域网内文件不能复制...
- 第10章第19节:使用iSlide将每张幻灯片分别导出为一张图片 [PowerPoint精美幻灯片实战教程]
- matlab软件有著作权,软件著作权matlab样例