文章目录

  • 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说明相关推荐

  1. Spring Boot 模板引擎FreeMarker集成

    Spring Boot 模板引擎FreeMarker集成 一.FreeMaker介绍 FreeMarker是一款免费的Java模板引擎,是一种基于模板和数据生成文本(HMLT.电子邮件.配置文件.源代 ...

  2. [转] Spring XML配置十二个最佳实践

    Spring是一个强大的JAVA应用框架,广泛地应用于JAVA的应用程序.为Plain Old Java Objects(POJOs)提供企业级服务.Spring利用依赖注入机制来简化工作,同时提高易 ...

  3. spring.xml配置类属性--喜闻乐见

    相信大家在开发的过程中,都会写一些配置文件或者配置类来,毕竟好的编码习惯是不能硬编码的,所以配置文件和配置类就显得很重要了.但是我用久了之后发现,配置文件和配置类确实好用,但是假如有多个配置的话,那么 ...

  4. 【JAVA秘籍心法篇-Spring】Spring XML解析源码详解

    [JAVA秘籍心法篇-Spring]Spring XML解析源码详解 所谓天下武功,无坚不摧,唯快不破.但有又太极拳法以快制慢,以柔克刚.武功外式有拳打脚踢,刀剑棍棒,又有内功易筋经九阳神功.所有外功 ...

  5. Spring Jdbc模板插入、更新和删除示例

    在Spring框架中数据访问的文章中,我们已经看到了Spring如何为各种持久性方法提供模板,以及模板如何将数据访问代码划分为固定部分和可变部分.Spring框架管理固定部分的地方,用户提供的自定义代 ...

  6. applicationcontext添加配置_Spring源码分析2 — spring XML配置文件的解析流程

    1 介绍 创建并初始化spring容器中,关键一步就是读取并解析spring XML配置文件.这个过程比较复杂,本文将详细分析整个流程.先看涉及到的关键类. XmlWebApplicationCont ...

  7. 使用XML模板在excel进行配置

    1.首先创建一个用于定义xml格式的模板,使用文本编辑器输入如下文本,并保存为xml格式,如:template.xml <?xml version="1.0" encodin ...

  8. spring事务模板使用

    1.配置spring事务模板bean <!--spring 模板事务-->     <bean id="transactionProxy" abstract=&q ...

  9. Spring xml 配置使用外部config 文件

    Spring xml 配置使用外部config 文件 当使用Spring framework后, 我们一般会把db connection的信息写在spring的bean config xml里面. 例 ...

最新文章

  1. qtablewidget限制输入类型_对敏感型电子信号输入实施过压保护的可靠新方法
  2. 第6章-一阶多智体系统一致性-->6.4 切换拓扑系统一致性
  3. 记住,永远不要在MySQL中使用“utf8”-转
  4. 渴望 英语_渴望订阅– RxJava常见问题解答
  5. kd tree学习笔记 (最近邻域查询)
  6. ajax:html5上传文件,上传之前可以实现本地预览
  7. nginx学习文档之一 安装nginx-Linux下安装nginx
  8. python助教评分问题_【1414软工助教】单元测试 得分榜
  9. c++ 打印日志信息
  10. Android 签名类型
  11. 前端如何生成条形码---JsBarcode
  12. 如何使用shell限制指定用户shell程序的网络带宽
  13. SpringCloud--Netflix Eureka 简介
  14. 支付宝免签 个人支付宝到银行卡
  15. Requests 库 | 不可胜数的 Python 第三方库
  16. js 负数转换正_js 负数转换成正数的方法
  17. PO模式实现Appium脚本封装
  18. 红绿灯代码 摘抄抖音 渡一前端的
  19. 支付宝wap支付配置应用公钥/应用私钥
  20. (20181111)Fortran 产生随机数

热门文章

  1. 蓝桥杯Web组备赛笔记3
  2. Python地理坐标系和投影坐标系转换
  3. iPhone 13 Pro 和 Pro Max 评测
  4. 苹果音乐下载转换器:TunePat Apple Music Converter for Mac
  5. Overture乐理调式音阶小课堂
  6. JAVA 实现上传图片添加水印(详细版)
  7. 计算机整个文稿应用回顾主题,IT活动|格创计算机协会精彩活动回顾
  8. 为什么局域网共享的文件不能复制,提示要以计算机管理员的身,局域网内文件不能复制...
  9. 第10章第19节:使用iSlide将每张幻灯片分别导出为一张图片 [PowerPoint精美幻灯片实战教程]
  10. matlab软件有著作权,软件著作权matlab样例