Logback日志基础配置以及自定义配置
Logback日志基础配置
logback日志配置有很多介绍,但是有几个非常基础的,容易忽略的。下面是最简单的一个配置,注意加粗的描述
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="true" scan="true" scanPeriod="30 seconds"> <!--log.path定义的是局部变量,./logs指定的是相对路径下的文件夹logs-->
<property name="log.path" value="./logs"/> <appender name="ROLLING-FILE-OUT" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!--这里的文件名是不能使用正则表达式,只能是定死的名字,实现了很久-->
<file>${log.path}/errorlog.log</file> <!-- 日志输出格式:%d表示日期时间,%thread表示线程名,%-5level:级别从左显示5个字符宽度
%logger{50} 表示logger名字最长50个字符,否则按照句点分割。 %msg:日志消息,%n是换行符 -->
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
</encoder> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 每天日志归档路径以及格式,可以不使用log后缀,%i:当文件大小超过maxFileSize时,按照i进行文件滚动,i从0开始滚动 -->
<FileNamePattern>${log.pat h}/errorlog.%d{yyyyMMdd}.log.%i.gz</FileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>4096MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!--日志文件保留天数-->
<maxHistory>365</maxHistory>
</rollingPolicy>
</appender> <!-- 日志级别-->
<root level="debug">
<appender-ref ref="ROLLING-FILE-OUT"/>
</root> </configuration>
在规范里,行结束符往往采用Linux结束符(\n),而不是上面那样的 %n。 这个\n ,使用txt文档查看,并没有换行
使用%的正则还有许许多多,比如如下:
<property name="CONSOLE_LOG_PATTERN" value="%date{yyyy-MM-dd HH:mm:ss} | %highlight(%-5level) | %yellow(%thread) | %green(%logger) | %msg%n"/>
再比如:%contextName 作用是 显示主机名
Logback日志自定义配置
即便如此,还是有很多想要的东西显示不了,这时就可自定义配置。比如我希望每条日志有个uuid类型的id,希望每条日志能打印ip地址
一、新建两个配置类,重写convert方法
package cn.jiashubing.config.logback; import ch.qos.logback.classic.pattern.ClassicConverter;
import ch.qos.logback.classic.spi.ILoggingEvent;
import java.util.UUID; public class LogIdConfig extends ClassicConverter { @Override
public String convert(ILoggingEvent event) {
return UUID.randomUUID().toString().replaceAll("-", "");
}
} package cn.jiashubing.config.logback; import ch.qos.logback.classic.pattern.ClassicConverter;
import ch.qos.logback.classic.spi.ILoggingEvent;
import java.net.InetAddress;
import java.net.UnknownHostException; public class IPLogConfig extends ClassicConverter { @Override
public String convert(ILoggingEvent event) {
try {
return InetAddress.getLocalHost().getHostAddress();
} catch (UnknownHostException e) {
e.printStackTrace();
}
return null;
}
}
二、配置日志文件
<property name="log.path" value="./logs"/>
<conversionRule conversionWord="ip" converterClass="cn.jiashubing.config.logback.IPLogConfig" />
<conversionRule conversionWord="logid" converterClass="cn.jiashubing.config.logback.LogIdConfig" /> <appender name="ROLLING-FILE-OUT" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/errorlog.log</file>
<encoder>
<pattern>[loglevel=%level] [timestamp=%d{yyyy-MM-dd HH:mm:ss}] [logid=%logid] [ip=%ip] [cmd=%msg] \n</pattern>
</encoder>
...
</appender>
Logback日志基础配置以及自定义配置的更多相关文章
- SpringBoot基础系列之自定义配置源使用姿势实例演示
[SpringBoot基础系列]自定义配置源的使用姿势介绍 前面一篇博文介绍了一个@Value的一些知识点,其中提了一个点,@Value对应的配置,除了是配置文件中之外,可以从其他的数据源中获取么,如 ...
- app.config 配置多项 配置集合 自定义配置(3)
再说说利用app.config配置多个自定义的方法.先看这个例子:美国家庭Simpson的家里有父亲母亲和三个儿女,而中国的老王只有独生子女.结构如下: <?xml version=" ...
- app.config 配置多项 配置集合 自定义配置(2)
上一篇说了利用app.config自定义节点配置,那是利用工具来实现,其实也一全部编码的方式来实现.举一个栗子.Simpson一家有父亲James,母亲Kate,和三个儿女Jim,Aaron和Luka ...
- app.config 配置多项 配置集合 自定义配置
C#程序的配置文件,使用的最多的是appSettings 下的<add key="Interval" value="30"/>,这种配置单项的很方便 ...
- app.config 配置多项 配置集合 自定义配置(4) 自动增加配置项到配置文件的两种方法
一,按照xml文件处理: 配置文件如下图(最后的图片). 自动写入configSections和configSections的实例 1.自动写入configSections Configuration ...
- SpringBoot整合+logback日志配置
本次演示的代码结构如下,基于maven,整合SpringBoot.Spring.Mybaits的SSM框架.同时测试logback日志框架的使用及配置. 1.创建maven工程,修改pom.xml文件 ...
- SpringBoot01 InteliJ IDEA安装、Maven配置、创建SpringBoot项目、yml属性配置、多环境配置、自定义properties配置
1 IntelliJ IDEA 安装 下载地址:点击前往 注意:需要下载专业版本的,注册码在网上随便搜一个就行啦 2 MAVEN工具的安装 2.1 获取安装包 下载地址:点击前往 2.2 安装过程 到 ...
- springboo 添加logback日志
springboot默认引入logback相关的jar包 1.在 Application.properties里添加 logging.config=classpath:logback-spring.x ...
- SpringBoot入门一:基础知识(环境搭建、注解说明、创建对象方法、注入方式、集成jsp/Thymeleaf、logback日志、全局热部署、文件上传/下载、拦截器、自动配置原理等)
SpringBoot设计目的是用来简化Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过这种方式,SpringBoot致力于在蓬勃发 ...
随机推荐
- ssh登录错误ECDSA host key for ip has changed解决方案
当我们使用ssh root@ip登录Linux服务器时,服务器报错: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WAR ...
- 数据结构——Java实现顺序栈
一.分析 栈是限定仅在表的一端进行插入或删除操作的线性表,对于栈来说,操作端称为栈顶,另一端则称为栈底,栈的修改是按照后进先出的原则进行的,因此又称为后进先出的线性表. 顺序栈是指利用顺序存储结构实现 ...
- asp.net core 今日所得
ViewBag中文变量被编码.乱码. 解决方法: @Html.Raw(@ViewBag.XX) 在 Startup.cs 的 ConfigureServices() 方法中添加下面的一行代码: ser ...
- es6之三个点(...)扩展运算符
我们看一个语法,你就知道es6对我们码农多友好,毕竟世界在进步 let arr=[1,2,3,4,54,56] console.log(...arr) 结果是????? 没错 ...这个运算符就是把这 ...
- 如何修改Recovery的字符串资源
前言:在实际的ROM修改中,Recovery的修改还是会经常遇到的,这篇文章主要讲解如何修改Recovery字符串. 首先我们先了解下大概的流程. 1.screen_ui.cpp 中的Screen ...
- Linux Mint有进程管理器吗?答案是肯定的
Linux Mint系统内置了一个系统管理器,叫 "System Monitor",通过 Menu -->> 系统工具 可以查看 . 如下图,在管理器上右键,可以&qu ...
- Node.js在指定的图片模板上生成二维码图片并附带底部文字说明
在Node.js中,我们可以通过qr-image包直接在后台生成二维码图片,使用方法很简单: var qr = require('qr-image'); exports.createQRImage = ...
- 10分钟学会在Ubuntu 18.04 LTS上安装NFS服务器和客户端
https://www.linuxidc.com/Linux/2018-11/155331.htm
- Activiti开发案例之activiti-app工作流导出图片
前言 自从 Activiti 和 JBPM4 分家以后,Activiti 目前已经发展到了版本7,本着稳定性原则我们最终选择了6,之前还有一个版本5. 问题 在开发使用的过程中发现 Activiti ...
- C# .NET 0配置使用Wcf(半成品)
设计原则:万物皆对象 背景:微软提供了一套强大的通信框架Wcf,了解请看百度百科:ttps://baike.baidu.com/item/Wcf/7374854?fr=aladdin 虽然这套通信框架 ...