springboot 指定logback.xml文件的位置(springboot接收参数)

学习了下psring的日志管理,具体的xml配置文件记录如下,方便以后参考。<?xmlversion="1.0"encoding="UTF-8"?><!–configuration根节点属性说明:scan:配置文件改

大家好,又见面了,我是你们的朋友全栈君。

学习了下spring的日志管理,具体的xml配置文件记录如下,方便以后参考。

<?xml version="1.0" encoding="UTF-8"?>
<!-- configuration根节点
    属性说明:
        scan:配置文件改变时是否重新加载 true表示是
        scanPeriod: 监视配置文件是否有修改的间隔时间,默认毫秒,scan为true时才生效
        debug: 是否打印logback内部日志信息 ,true表示是

     总体说明:根节点下有2个属性,三个节点
        属性: contextName 上下文名称; property 设置变量
        节点: appender,  root, logger
      详细说明见具体位置
 -->
<configuration scan="true" scanPeriod="60 seconds" debug="false">
    <!--
        contextName说明:
        每个logger都关联到logger上下文,默认上下文名称为“default”。但可以使用设置成其他名字,
        用于区分不同应用程序的记录。一旦设置,不能修改,可以通过%contextName来打印日志上下文名称。
     -->
    <contextName>train</contextName>
    <!--
        property说明:
        用来定义变量值的标签, 有两个属性,name和value;其中name的值是变量的名称,value的值时
        变量定义的值。通过定义的值会被插入到logger上下文中。定义变量后,可以使“${}”来使用变量。

        目前来说,可以直接配置属性,或者引入外部配置文件方式。引入外部文件可用file或者resource属性,
        但是推荐使用resouce属性。file必须是绝对路径,不推荐。
    -->
    <property resource="log-variables.properties"></property>
    <!--<property name="logback.path" value="F:\\workspaceScala\\log"/>-->
    <!--<property file="F:\workspaceScala\sprngbootjava\src\main\resources\log-variables.properties"></property>-->

    <!--输出到控制台-->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <!--展示格式 layout-->
        <encoder>
            <charset>${charset}</charset>
            <pattern>${console.pattern}</pattern>
        </encoder>
    </appender>

    <!-- 日志文件 级别:error -->
    <appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- file设置打印的文件的路径及文件名,建议绝对路径 -->
        <file>${logback.path}\${error.file}</file>
        <!-- 追加方式记录日志,默认true -->
        <append>true</append>
        <!-- 过滤策略:
            LevelFilter : 只打印level标签设置的日志级别
            ThresholdFilter:打印大于等于level标签设置的级别,小的舍弃
         -->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
        <!--<filter class="ch.qos.logback.classic.filter.ThresholdFilter">-->
            <!-- 过滤的日志级别 -->
            <level>${error.level}</level>
            <!--匹配到就允许-->
            <onMatch>ACCEPT</onMatch>
            <!--没有匹配到就禁止-->
            <onMismatch>DENY</onMismatch>
        </filter>
        <!--
            日志记录器的滚动策略
            SizeAndTimeBasedRollingPolicy 按日期,大小记录日志
            另外一种方式:
                rollingPolicy的class设置为ch.qos.logback.core.rolling.TimeBasedRollingPolicy
                triggeringPolicy标签的class设置为ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy
                意思是达到指定大小后重新写文件
        -->
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <!--
                归档的日志文件的路径,例如今天是2018-08-23日志,当前写的日志文件路径为file节点指定,
                可以将此文件与file指定文件路径设置为不同路径,从而将当前日志文件或归档日志文件置不同的目录。
                而2018-08-23的日志文件在由fileNamePattern指定。%d{yyyy-MM-dd}指定日期格式,%i指定索引
             -->
            <FileNamePattern>${logback.path}\${error.fileNamePattern}</FileNamePattern>
            <!--
                配置日志文件不能超过100M,若超过100M,日志文件会以索引0开始,命名日志文件
                例如error.20180823.0.txt
            -->
            <maxFileSize>100MB</maxFileSize>
            <!-- 只保留最近10天的日志 -->
            <maxHistory>${error.maxHistory}</maxHistory>
        </rollingPolicy>
        <encoder>
            <!-- 编码格式 -->
            <charset>${charset}</charset>
            <!-- 指定日志格式 -->
            <pattern>${error.pattern}</pattern>
        </encoder>
    </appender>

    <!-- 日志文件 级别:warn -->
    <appender name="file_warn" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${logback.path}\${warn.file}</file>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>${warn.level}</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>

        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <FileNamePattern>${logback.path}\${warn.fileNamePattern}</FileNamePattern>
            <maxFileSize>100MB</maxFileSize>
            <maxHistory>${warn.maxHistory}</maxHistory>
        </rollingPolicy>
        <encoder>
            <charset>${charset}</charset>
            <pattern>${warn.pattern}</pattern>
        </encoder>
    </appender>

    <!-- 日志文件 级别:info -->
    <appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${logback.path}\${info.file}</file>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>${info.level}</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <FileNamePattern>${logback.path}\${info.fileNamePattern}</FileNamePattern>
            <maxFileSize>100MB</maxFileSize>
            <maxHistory>${info.maxHistory}</maxHistory>
        </rollingPolicy>
        <encoder>
            <charset>${charset}</charset>
            <pattern>${info.pattern}</pattern>
        </encoder>
    </appender>

    <!--
        root指定最基础的日志输出级别,level属性指定
        appender-ref标识的appender将会添加到这个logger
    -->
    <root level="info">
        <appender-ref ref="console"/>
        <appender-ref ref="file_info"/>
        <appender-ref ref="file_warn"/>
        <appender-ref ref="file_error"/>
    </root>

    <!--
        logger用来设置某一个具体的包或者类的日志打印, name表明包路径或类路径,level指定打印级别,
        addtivity表示是否向上级logger(即,root)传递打印信息
        下例指定了warn及以上级别的日志交给“console”appender打印,并且不向上传递。
    -->
    <logger name="com.lin.train.mapper" level="DEBUG" additivity="false">
        <appender-ref ref="console"/>
    </logger>

    <!--
        多环境日志输出:这里不再详细描述,个人感觉意义不大。无论生产还是开发,配置info级别就OK了
        相应标签:springProfile
    -->
</configuration>

属性文件如下:

#log.path=F:\\workspaceScala\\log\\train.log
#日志文件路径
logback.path=F:\\workspaceScala\\log
#日志输出编码
charset=UTF-8

####################### 控制台日志 start ##########################
#日志输出格式
#console.pattern=[lf-1][service][%d{yyyy-MM-dd HH:MM:ss.SSS}] [%-5level] [%t] %msg%n
#%d [%thread] - %contextName %-5level %logger{36}.%M\(%file:%line\) - %msg%n
#说明:               时间                      日志级别    应用上下文       线程名     类名方法名         消息  换行
console.pattern=%d{yyyy-MM-dd HH:mm:ss.sss} %-5level [%contextName] -- [%t] %logger{36}.%method: %msg%n
#日志输出级别
console.level=debug
####################### 控制台日志 end ############################

####################### info日志 start ###########################
#日志输出格式
info.pattern=%d{yyyy-MM-dd HH:mm:ss.sss} %-5level [%contextName] -- [%t] %logger{36}.%method: %msg%n
#日志输出级别
info.level=info
#日志文件路径
info.file=info.log
#日志文件名称格式
info.fileNamePattern=info.%d{yyyy-MM-dd}.%i.txt
#日志文件保留天数
info.maxHistory=7
####################### info日志 end ############################

####################### warn日志 start ###########################
#日志输出格式
warn.pattern=%d{yyyy-MM-dd HH:mm:ss.sss} %-5level [%contextName] -- [%t] %logger{36}.%method: %msg%n
#日志输出级别
warn.level=warn
#日志文件路径
warn.file=warn.log
#日志文件名称格式
warn.fileNamePattern=warn.%d{yyyy-MM-dd}.%i.txt
#日志文件保留天数
warn.maxHistory=7
####################### warn日志 end #############################

####################### error日志 start ###########################
#日志输出格式
error.pattern=%d{yyyy-MM-dd HH:mm:ss.sss} %-5level [%contextName] -- [%t] %logger{36}.%method: %msg%n
#日志输出级别
error.level=error
#日志文件路径
error.file=error.log
#日志文件名称格式
error.fileNamePattern=error.%d{yyyy-MM-dd}.%i.txt
#日志文件保留天数
error.maxHistory=10
####################### error日志 end ###########################

第一次写博客,希望能记录自己更多的学习过程。
如有错误,欢迎指正。
附:参考链接如下:
http://tengj.top/2017/04/05/springboot7/
https://www.cnblogs.com/linkstar/p/8309039.html
https://www.cnblogs.com/lixuwu/p/5804793.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/128111.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • C语言入门项目篇:贪吃蛇(完整代码+详细注释)「建议收藏」

    C语言入门项目篇:贪吃蛇可直接运行。#include<stdio.h>#include<stdlib.h>#include<windows.h>#include<time.h>#include<conio.h>/*大一上的时候C语言入门学的一个小游戏。还是挺有意思的,有兴趣的同学可以继续优化下:比如蛇头碰到蛇身就判定为输/给蛇身加点颜色等。*///1.2食物结构体#defineMAPHEIGHT25#defi

    2022年4月4日
    116
  • 数据结构 单一列表

    数据结构 单一列表

    2022年1月7日
    44
  • WDM 驱动程序开发[通俗易懂]

    WDM 驱动程序开发[通俗易懂]1.概述 引入了全新的WDM(Win32DriverModel)的驱动程序架构,说是新技术,其实早在1997年Microsoft就提出了该项技术并在Windows98中得到了充分的应用,换句话说,Windows98也支持WDM。这样WDM就成为了一个跨平台的驱动程序模型不仅如此WDM驱动程序还可以在不修改源代码的情况下经过重新编译后在非Intel平台上运行。2.WDM设备驱动程序的特

    2022年10月21日
    0
  • Java实现MD5加密的方式

    Java实现MD5加密的方式  MD5加密是一种常见的加密方式,我们经常用在保存用户密码和关键信息上。那么它到底有什么,又什么好处呢,会被这么广泛的运用在应用开发中。  1、什么是MD5  MD5加密全程是Message-DigestAlgoorithm5(信息-摘要算法),它对信息进行摘要采集,再通过一定的位运算,最终获取加密后的MD5字符串。  例如我们要加密一篇文章,那么我们会随机从每段话或者每行中获取…

    2022年7月27日
    9
  • python中sqrt函数用法_Python sqrt() 函数

    python中sqrt函数用法_Python sqrt() 函数内容简介:sqrt()方法返回数字x的平方根。描述sqrt()方法返回数字x的平方根。语法以下是sqrt()方法的语法:importmathmath.sqrt(x)注意:sqrt()是不能直接访问的,需要导入math模块,通过静态对象调用该方法。参数x–数值表达式。返回值返回数字x的平方根。实例以下展示了使用sqrt()方法的实例:#!/usr/bin/pythonim…

    2022年5月30日
    48
  • 最新Anaconda3的安装配置及使用教程(详细过程)

    最新Anaconda3的安装配置及使用教程(详细过程)最新Anaconda3安装使用Anaconda下载方式一:官网下载方式二:清华镜像下载(推荐)Anaconda安装Anaconda是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项Anaconda+Jupyter基本上已经是大部分机器学习/数据分析等开发者标配的开发环境,不多介绍,直接进去正题:Anaconda下载方式一:官网下载下载地址传送门:官网首页:https://www.anaconda.com/官网下载页:https://www

    2022年5月8日
    362

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号