spring boot(13)-logback和access日志
logback
logback-spring.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- appender是配置输出终端,ConsoleAppender是控制台,name是自定义名 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<!-- 配置日志格式,这是一个比较通用的格式 -->
<pattern>%d{HH:mm:ss.SSS} %-5level %logger{35} - %msg%n</pattern>
</encoder>
</appender> <!-- 输出终端是滚动文件 -->
<appender name="WARN" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 基于时间滚动,就是每天的日志输出到不同的文件 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 输出日志的目录文件名,window中默认分区为当前程序的硬盘分区,%d{yyyy-MM-dd}是当前日期 -->
<fileNamePattern>/log/warn/warn.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 最大保存99个文件,超出的历史文件会被删除 -->
<maxHistory>99</maxHistory>
</rollingPolicy>
<!-- 按照日志级别进行过滤 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<!-- 只收集WARN级别的日志,其他高级别和低级别的日志都放弃 -->
<level>WARN</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<encoder>
<pattern>%d{HH:mm:ss.SSS} %-5level %logger{35} - %msg%n</pattern>
</encoder>
</appender> <!-- 除了filter,其他 配置和上面一样, 只是name和文件路径不同-->
<appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>/log/error/error.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>99</maxHistory>
</rollingPolicy>
<!-- 阈值过滤器 -->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<!-- 收集ERROR及ERROR以上级别的日志 -->
<level>ERROR</level>
</filter>
<encoder>
<pattern>%d{HH:mm:ss.SSS} %-5level %logger{35} - %msg%n</pattern>
</encoder>
</appender> <!-- root是根日志打印器,只有一个,负责整个系统的日志输出 -->
<root level="INFO">
<!-- 将上面三个输出终端配置到根打印器,将对整个系统 生效。 -->
<appender-ref ref="STDOUT" />
<appender-ref ref="WARN" />
<appender-ref ref="ERROR" />
</root> <!-- logger是root的子打印器,可以有多个,输出name配置的包中的日志。 -->
<!-- hello.dao是我的mybatis映射dao的包名,设置为debug可以打印mybatis的sql语句 -->
<logger name="hello.dao" level="DEBUG" />
</configuration>
运行后结果是这样的,E盘是我的程序当前分区,会自动生成log目录如下,会分别保存error和warn级别的日志
level日志级别
在上面配置中的leven参数,主要使用了四种,,级别从低到高分别为debug,info,warn,error,当设置某一级别日志时,比他低级的日志不会输出。
debug:调试,从名字可以看出其作用。程序中报错无法解决时,使用调试来查看更多错误信息。在mybatis中使用这种日志才会输出sql语句。 debug的输出量太大,而且不懂源码的人很多都看不懂,还有很多没什么实际作用的日志信息刷屏,只适合报异常程序的调试。
info:信息,信息量比debug少很多,只会输出一些重要的信息,适合开发时使用。
warn:警告,通常是可以修复的,不修复也不一定会引发异常,有时候是一些提示信息,但是比info信息更加重要
error:错误,很明显,就是程序异常
access访问日志
tomcat中默认是有access访问日志的,用于记录访问者的IP,不过在spring boot中这个日志默认是关闭的。如果你的服务器结构中有nginx类的http服务器,access日志应该是在nginx中配置的。而tomcat这样的后台服务器只需要记录后台日志,不需要管access日志。如果想在spring boot中打开access日志,可以在application.properties中配置
#配置tomcat工作目录,为当前分区的tomcat目录
server.tomcat.basedir=/tomcat
#开启accesslog,会记录到上面的目录下
server.tomcat.accesslog.enabled=true
spring boot(13)-logback和access日志的更多相关文章
- Spring Boot (16) logback和access日志
Spring Boot 内部采用的是Commons Logging进行日志记录,但是在底层为Java Util Logging.Log4J2.Logback等日志框架提供了默认配置. logback ...
- spring boot打开tomcat的access日志
spring boot虽说内置了tomcat,但打出来的是jar包而非war包,更没有access日志,那么如何打开access日志呢?只需在application.properties中加入相关配置 ...
- Spring Boot与Logback的运用(自定义异常+AOP)
在开发以及调试过程中,程序员对日志的需求是非常大的,出了什么问题,都要通过日志去进行排查,但是如果日志不清或者杂乱无章,则不利于维护 这边就比较详细的列举几种类型的日志,供大家参考 首先明白logba ...
- spring boot 中logback多环境配置
spring boot 配置logback spring boot自带了log打印功能,使用的是Commons logging 具体可以参考spring boot log 因此,我们只需要在resou ...
- Spring Boot 的Logback
Spring Boot 默认使用Logback记录日志 Spring Boot starter 都会默认引入spring-boot-starter-logging,不需要再引入 日志级别从高到低:TR ...
- 剑指架构师系列-spring boot的logback日志记录
Spring Boot集成了Logback日志系统. Logback的核心对象主要有3个:Logger.Appender.Layout 1.Logback Logger:日志的记录器 主要用于存放日志 ...
- Spring Boot之logback日志最佳实践
一.Spring Boot日志介绍 Spring Boot对所有内部日志记录使用了Commons Logging,但是底层日志实现是开放的.为Java Util日志记录.Log4J2和Logback提 ...
- 基于Spring Boot的Logback日志轮转配置
在生产环境下,日志是最好的问题调试和跟踪方法,因此日志的地位是十分重要的.我们平时经常使用的log4j,slf4j,logback等等,他们的配置上大同小异.这里就结合Spring Boot配置一下L ...
- spring boot 使用logback日志系统的详细说明
springboot按照profile进行打印日志 log4j logback slf4j区别? 首先谈到日志,我们可能听过log4j logback slf4j这三个名词,那么它们之间的关系是怎么样 ...
随机推荐
- EF基础知识小记三(设计器=>数据库)
本文主要介绍通过EF的设计器来同步数据库和对应的实体类.并使用生成的实体上下文,来进行简单的增删查该操作 1.通过EF设计器创建一个简单模型 (1).右键目标项目添加新建项 (2).选择ADO.Net ...
- SELECT列表中的标量子查询
发现了一种表连接新的写法,以前还没有这样写过或者见别人写过.跟同学聊天他们公司却很多人这样写,看来真的要学学sql了 表 CREATE TABLE `t_book` ( `FId` ) NOT NUL ...
- java_sql_Batch_批处理
java JDBC 进行sql语句的批处理的两种方法示例代码.表是oracle数据库里的dept表,为了看清逻辑关系,把异常都throws 出去. package com.ayang.jdbc; i ...
- 【Java并发编程】:使用synchronized获取互斥锁
在并发编程中,多线程同时并发访问的资源叫做临界资源,当多个线程同时访问对象并要求操作相同资源时,分割了原子操作就有可能出现数据的不一致或数据不完整的情况,为避免这种情况的发生,我们会采取同步机制,以确 ...
- OpenGL10-骨骼动画原理篇(2)
接上一篇的内容,上一篇,简单的介绍了,骨骼动画的原理,给出来一个 简单的例程,这一例程将给展示一个最初级的人物动画,具备多细节内容 以人走路为例子,当人走路的从一个站立开始,到迈出一步,这个过程是 一 ...
- MySQL的Sleep进程占用大量连接解决方法
第一部分为产生大量sleep进程的原理及对应解决方法第二部分为设置wait_timeout值,有效减少sleep进程 ========================================= ...
- Nginx配置访问权限
基于IP配置Nginx的访问权限 Nginx配置通过两种途径支持基本访问权限的控制,其中一种是由HTTP标准模块ngx_http_access_module支持的,通过IP来判断客户端是否拥有对Ngi ...
- springboot-17-springboot的文件上传和下载
单文件上传 1, 需要使用thymeleaf模板: http://www.cnblogs.com/wenbronk/p/6565834.html src/main/resource/template ...
- [作业] Python入门基础--三级菜单
用字典存储数据 可以随时返回上一级,随时退出程序 只能用循环判断等内置方法,不得导入模块 menu = { '广东':{ '广州':{ '越秀区':{ '面积':'33.80', '人口':'115万 ...
- ADB故障时的一些命令
开发中经常用到adb重启等操作,简单记录一下. 1.重启 adb kill-server adb start-server 2.显示版本号 adb version 3.显示已连接的设备 adb dev ...