`

50. Spring Boot日志升级篇—log4j【从零开始学Spring Boot】

阅读更多

 à悟空学院:https://t.cn/Rg3fKJD

学院中有Spring Boot相关的课程!点击「阅读原文」进行查看!

SpringBoot视频:http://t.cn/A6ZagYTi

Spring Cloud视频:http://t.cn/A6ZagxSR

SpringBoot Shiro视频:http://t.cn/A6Zag7IV

SpringBoot交流平台:https://t.cn/R3QDhU0

SpringData和JPA视频:http://t.cn/A6Zad1OH

SpringSecurity5.0视频:http://t.cn/A6ZadMBe

Sharding-JDBC分库分表实战http://t.cn/A6ZarrqS

分布式事务解决方案「手写代码」:http://t.cn/A6ZaBnIr

 

如果你使用的是spring boot 1.4.0版本的话,那么你可能需要配合以下文章进行学习

90.Spring Boot 1.4 使用log4j错误【从零开始学Spring Boot】 

 

Log4j是每个开发者比较熟悉的日志框架,所以咱们升级篇中优先介绍这个。

那么如何操作呢?我们一起来看看使用过程吧。

引入log4j依赖

在创建Spring Boot工程时,我们引入了spring-boot-starter,其中包含了spring-boot-starter-logging,该依赖内容就是Spring Boot默认的日志框架Logback,所以我们在引入log4j之前,需要先排除该包的依赖,再引入log4j的依赖,就像下面这样:

<!-- 忽略自带的日志框架. -->

        <dependency>

           <groupId>org.springframework.boot</groupId>

           <artifactId>spring-boot-starter</artifactId>

           <exclusions>

               <exclusion>

                   <groupId>org.springframework.boot</groupId>

                   <artifactId>spring-boot-starter-logging</artifactId>

               </exclusion>

           </exclusions>

       </dependency>

       

        <!-- log4j. -->

        <dependency> 

           <groupId>org.springframework.boot</groupId>

           <artifactId>spring-boot-starter-log4j</artifactId>

        </dependency>

 

配置log4j-spring.properties

在引入了log4j依赖之后,只需要在src/main/resources目录下加入log4j-spring.properties配置文件,就可以开始对应用的日志进行配置使用。

(取名:我们在上一节说了,spring boot建议名称为-spring.*的方式,取名为log4j.properties也是没有问题的)

 

控制台输出

       通过如下配置,设定root日志的输出级别为INFOappender为控制台输出stdout

# LOG4J配置

log4j.rootCategory=INFO,stdout

 

# 控制台输出

log4j.appender.stdout=org.apache.log4j.ConsoleAppender 

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 

log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n

 

输出到文件

       在开发环境,我们只是输出到控制台没有问题,但是到了生产或测试环境,或许持久化日志内容,方便追溯问题原因。可以通过添加如下的appender内容,按天输出到不同的文件中去,同时还需要为log4j.rootCategory添加名为fileappender,这样root日志就可以输出到logs/springboot.log文件中了。

# LOG4J配置

log4j.rootCategory=INFO,stdout,file

 

 

# 日志输出到文件

log4j.appender.file=org.apache.log4j.DailyRollingFileAppender 

log4j.appender.file.file=logs/springboot.log 

log4j.appender.file.DatePattern='.'yyyy-MM-dd 

log4j.appender.file.layout=org.apache.log4j.PatternLayout 

log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n 

       当然输出到文件和输出到控制台是可以并行存在的。

 

分类输出

当我们日志量较多的时候,查找问题会非常困难,常用的手段就是对日志进行分类,比如:

       可以按不同package进行输出。通过定义输出到logs/my.logappender,并对com.didispace包下的日志级别设定为DEBUG级别、appender设置为输出到logs/my.log的名为didifileappender

# com.kfit包下的日志配置

log4j.category.com.kfit=DEBUG, didifile

 

# com.didispace下的日志输出

log4j.appender.didifile=org.apache.log4j.DailyRollingFileAppender 

log4j.appender.didifile.file=logs/my.log 

log4j.appender.didifile.DatePattern='.'yyyy-MM-dd 

log4j.appender.didifile.layout=org.apache.log4j.PatternLayout 

log4j.appender.didifile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L ---- %m%n

 

       可以对不同级别进行分类,比如对ERROR级别输出到特定的日志文件中,具体配置可以如下:

 

# LOG4J配置

log4j.rootCategory=INFO, stdout,errorfile

log4j.logger.error=errorfile

 

 

# error日志输出

log4j.appender.errorfile=org.apache.log4j.DailyRollingFileAppender

log4j.appender.errorfile.file=logs/error.log

log4j.appender.errorfile.DatePattern='.'yyyy-MM-dd

log4j.appender.errorfile.Threshold = ERROR

log4j.appender.errorfile.layout=org.apache.log4j.PatternLayout

log4j.appender.errorfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n %5p %c{1}:%L - %m%n

 

 

输出到数据库

将日志文件输出到数据库配置:

# LOG4J配置

log4j.rootCategory=INFO,stdout,jdbc

 

# 数据库输出

log4j.appender.jdbc=org.apache.log4j.jdbc.JDBCAppender

log4j.appender.jdbc.driver=com.mysql.jdbc.Driver

log4j.appender.jdbc.URL=jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8&useSSL=true

log4j.appender.jdbc.user=root

log4j.appender.jdbc.password=root

log4j.appender.jdbc.sql=insert into log_icecoldmonitor(level,category,thread,time,location,note) values('%p','%c','%t','%d{yyyy-MM-dd HH:mm:ss:SSS}','%l','%m')

 

引入数据库驱动:

<dependency>

           <groupId>mysql</groupId>

           <artifactId>mysql-connector-java</artifactId>

</dependency>

 

创建表:

CREATE TABLE `log_icecoldmonitor` (

  `Id` int(11) NOT NULL AUTO_INCREMENT,

  `level` varchar(255) NOT NULL DEFAULT '' COMMENT '优先级',

  `category` varchar(255) NOT NULL DEFAULT '' COMMENT '类目',

  `thread` varchar(255) NOT NULL DEFAULT '' COMMENT '进程',

  `time` varchar(30) NOT NULL DEFAULT '' COMMENT '时间',

  `location` varchar(255) NOT NULL DEFAULT '' COMMENT '位置',

  `note` text COMMENT '日志信息',

  PRIMARY KEY (`Id`)

)

 

这样就可以保存到日志到数据库了,可能会出现如下异常信息:

Java连接Mysql数据库警告:Establishing SSL connection

       原因是MySQL在高版本需要指明是否进行SSL连接。解决方案如下:

mysql连接字符串url中加入ssl=true或者false即可,如下所示。

url=jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8&useSSL=true

 

 

 

 

本文主要介绍如何在spring boot中引入log4j,以及一些基础用法,对于更多log4j的用法,还请参考log4j官方网站

  Spring Boot 系列博客】

à悟空学院:https://t.cn/Rg3fKJD

学院中有Spring Boot相关的课程!点击「阅读原文」进行查看!

SpringBoot视频:http://t.cn/A6ZagYTi

Spring Cloud视频:http://t.cn/A6ZagxSR

SpringBoot Shiro视频:http://t.cn/A6Zag7IV

SpringBoot交流平台:https://t.cn/R3QDhU0

SpringData和JPA视频:http://t.cn/A6Zad1OH

SpringSecurity5.0视频:http://t.cn/A6ZadMBe

Sharding-JDBC分库分表实战http://t.cn/A6ZarrqS

分布式事务解决方案「手写代码」:http://t.cn/A6ZaBnIr

 

网易云课堂视频最新更新

第十一章 Spring Boot 日志

1、spring boot日志—理论

2、Spring Boot日志-logback

3、Spring Boot日志-log4j2

第十二章 Spring Boot 知识点2

1、spring boot 服务配置和部署

2、Spring Boot 定制URL匹配规则

 

 

历史章节

 

第一章 快速开始

1、Spring Boot之Hello World

2、Spring Boot之Hello World访问404

 

第二章 Spring Boot之JSON

1、spring boot返回json数据

2、Spring Boot完美使用FastJson解析JSON数据

 

第三章 Spring Boot热部署

1、Spring Boot热部署(springloader)

2、springboot + devtools(热部署)

 

第四章 Spring Boot数据库

1、Spring Boot JPA/Hibernate/Spring Data概念

2、Spring Boot JPA-Hibernate

3、Spring Boot Spring Data JPA介绍

4、Spring Boot JdbcTemplate

5、Spring Boot集成MyBatis

 

第五章 web开发

1、全局异常捕捉

2、配置server信息

3、spring boot使用thymeleaf

4、Spring Boot 使用freemarker

5、Spring Boot添加JSP支持

 

第六章 定时任务

1、Spring Boot定时任务

2、Spring Boot 定时任务升级篇(动态修改cron参数)

3、Spring Boot 定时任务升级篇(动态添加修改删除定时任务)

4、Spring Boot 定时任务升级篇(集群/分布式下的定时任务说明)

5、Spring Boot Quartz介绍

6、Spring Boot Quartz在Java Project中使用

7、Spring Boot 集成Quartz普通使用

8、Spring Boot 集成Quartz升级版

9、Spring Boot 集成Quartz二次升级版

10、Spring Boot 集成Quartz-Job如何自动注入Spring容器托管的对象

 

第七章 Spring Boot MyBatis升级篇

1、Spring Boot MyBatis升级篇-注解

2、Spring Boot MyBatis升级篇-注解-自增ID

3、Spring Boot MyBatis升级篇-注解-增删改查

4、Spring Boot MyBatis升级篇-注解-分页查询

5、Spring Boot MyBatis升级篇-注解-分页PageHelper不生效

6、Spring Boot MyBatis升级篇-注解- mybatic insert异常:BindingException: Parameter 'name' not found

7、Spring Boot MyBatis升级篇-注解- #和$符号特别篇

8、Spring Boot MyBatis升级篇-注解-@Result

9、Spring Boot MyBatis升级篇-注解-动态SQL(if test)-方案一:<script>

10、Spring Boot MyBatis升级篇-注解-动态SQL(if test)-方案二:@Provider

11、Spring Boot MyBatis升级篇-注解-动态SQL-参数问题

12、Spring Boot MyBatis升级篇-注解-特别篇:@MapperScan和@Mapper

13、Spring Boot MyBatis升级篇-XML

14、Spring Boot MyBatis升级篇-XML-自增ID

15、Spring Boot MyBatis升级篇-XML-增删改查

16、Spring Boot MyBatis升级篇-XML-分页查询

17、Spring Boot MyBatis升级篇-XML-分页PageHelper不生效

18、Spring Boot MyBatis升级篇-XML-动态SQL(if test)

19、Spring Boot MyBatis升级篇-XML-注解-初尝试

20、Spring Boot MyBatis升级篇- pagehelper替换为pagehelper-spring-boot-starter

 

第八章 Spring Boot 知识点1

1、Spring Boot 拦截器HandlerInterceptor

2、Spring Boot启动加载数据CommandLineRunner

3、Spring Boot环境变量读取和属性对象的绑定

4、Spring Boot使用自定义的properties

5、Spring Boot使用自定义的properties

6、Spring Boot使用@SpringBootApplication

7、Spring Boot 监控和管理生产环境

 

第十章 Spring Boot 打包部署

1、Spring Boot打包部署((提供Linux的sh文件))

 

第十一章 Spring Boot 日志

1、spring boot日志—理论

2、Spring Boot日志-logback

3、Spring Boot日志-log4j2

更多查看博客: http://412887952-qq-com.iteye.com/

 

 

分享到:
评论
2 楼 林祥纤 2016-06-24  
a807966224 写道
喜欢 666666  


1 楼 a807966224 2016-06-24  
喜欢 666666  

相关推荐

    16. Spring Boot使用Druid(编程注入)【从零开始学Spring Boot】

    在本篇【从零开始学Spring Boot】系列中,我们将探讨如何在Spring Boot项目中使用Druid数据源进行编程注入。Druid是一个优秀的数据库连接池,它提供了强大的监控和扩展功能,是许多企业级应用首选的数据源解决方案。...

    从零开始学Spring Boot

    《从零开始学Spring Boot》是一本由林祥纤编著的书籍,旨在帮助初学者系统地学习和掌握Spring Boot框架。Spring Boot是Java开发领域的一款流行框架,它简化了Spring应用的初始设置和配置,使得开发者能够快速构建可...

    spring-boot实战PDF 完整版和随书源码.7z

    6. 日志记录:配置Logback或Log4j2进行日志管理和输出。 7. 身份验证与令牌管理:实现OAuth2或JWT(JSON Web Tokens)的身份验证机制。 通过阅读这本书和实践源码,开发者不仅能了解Spring Boot的基本用法,还能...

    Spring Boot教程.pdf

    Spring Boot 支持多种日志框架,如 Logback、Log4j 等。 在日志处理中,我们可以使用 @Slf4j 注解来标注日志类,并使用 logger 对象来记录日志信息。同时,我们也可以使用日志配置文件来配置日志的输出格式和级别...

    Spring Boot 系列实战合集.zip

    1. 创建第一个 Spring Boot 项目:从零开始创建一个简单的 "Hello, World!" 应用,理解 Maven 或 Gradle 项目的结构。 2. 使用 Spring Boot 的自动配置:探究如何利用自动配置来简化配置文件。 3. 开发 RESTful API...

    spring boot中文参考指南

    日志管理也是Spring Boot关注的重点,它默认集成了Logback或Log4j2,提供灵活的日志记录和配置。此外,Spring Boot还有强大的健康检查和监控功能,通过Actuator端点,可以查看应用的运行状态、内存使用情况、环境...

    Java spring boot 框架通用模板

    2. 引入最佳实践:模板可能包含了日志处理、错误处理、安全性、缓存管理等方面的最佳实践,避免了从零开始设计这些常见功能。 3. 数据访问:Spring Boot支持多种数据库,包括JDBC、JPA、Hibernate等,通用模板可能...

    干净可用spring-boot的项目

    12. **日志**:Spring Boot默认使用Logback或Log4j2进行日志记录,并提供了简单的日志级别配置。 以上就是关于Spring Boot的一些核心知识点,也是“干净可用spring-boot的项目”可能包含的内容。在实际使用时,...

    从0写一个问卷调查APP后端spring boot基础框架

    以下将详细介绍如何从零开始构建这个框架。 1. **环境配置**: - 首先,确保安装了JDK,并将版本设置为1.8或以上,因为Spring Boot 2.x版本主要支持Java 8及以上。 - 安装Maven或Gradle作为项目构建工具,Spring ...

    base.spring.boot

    通过"base.spring.boot-master"这个项目,你可以深入学习如何从零开始构建一个完整的Spring Boot应用,包括项目结构、配置文件、控制器、服务层、数据库集成、单元测试等多个方面。实践是检验真理的唯一标准,动手...

    从零搭建Spring Boot脚手架,增加通用的功能.docx

    本文旨在从零开始搭建一个Spring Boot项目框架(脚手架),并在此基础上增加一系列通用功能以提高开发效率及代码复用性。通过集成Spring MVC,并对其进行一定程度的定制化处理,以满足日常软件开发中的常见需求。...

    从0到1实战,快速搭建SpringBoot工程

    - 日志管理:Spring Boot默认集成了Logback或Log4j2,可以轻松定制日志级别和输出格式。 以上就是从零开始搭建Spring Boot工程的基本步骤。随着你对Spring Boot的理解加深,可以尝试更多高级特性和集成其他服务,...

    SpringBoot视频教程全套百度网盘

    根据提供的文件信息,我们可以梳理出一系列与Spring Boot相关的知识点,这些知识点主要涵盖了Spring Boot的基础...通过学习这些知识点,开发者可以从零开始逐步掌握Spring Boot的使用方法,并将其应用于实际项目中。

    spring-boot-sample-Redis.zip_ownerrn7_springboot Demo

    通过对这些文件的理解,我们可以推断这个项目提供了从零开始集成Redis到Spring Boot应用的完整示例,包括配置、代码实现和测试。学习这个示例可以帮助开发者更好地理解如何在实际项目中使用Spring Boot和Redis,提升...

    spring-boot-hello-world:Spring Boot 应用程序示例

    总的来说,"spring-boot-hello-world"项目为我们提供了一个简洁明了的Spring Boot应用实例,展示了从零开始创建一个简单Web应用的过程。通过这个项目,你可以学习到Spring Boot的基本架构、配置方式以及如何编写控制...

    从零搭建自己的springboot后台框架.rar

    在本文中,我们将深入探讨如何从零开始搭建一个基于Spring Boot的后台框架。Spring Boot是Java领域中的一个流行框架,它极大地简化了Spring应用程序的初始设置和配置,使得开发过程更加高效。首先,我们需要了解搭建...

    java课程设计项目:基于SpringBoot的在线订餐系统.zip

    所有源码都已经过测试,可以直接运行,这为学习者提供了直接实践的机会,无需从零开始构建整个系统,大大降低了学习和开发的难度。 【标签】"spring boot"、"spring boot java"和"毕业设计"揭示了项目的几个关键点...

    java+手把手vue+springboot前后端分离项目实战---社区项目后端代码.zip

    例如,使用Spring的`@ControllerAdvice`进行全局异常处理,以及集成Log4j或Logback进行日志记录。 8. **单元测试与集成测试**: 使用JUnit和Mockito等工具进行单元测试,验证单个组件的功能;使用Spring Boot的...

    springmvc+spring+mybatis+Maven+mysql环境搭建,附源码

    通过本教程的学习,读者可以了解如何从零开始搭建一个完整的项目结构,包括数据库设计、项目构建、框架配置等各个环节。 #### 二、环境准备与配置 ##### 1. 数据库设计与创建 在搭建开发环境之前,首先需要创建...

    Macbook中使用IDEA开发Spring+SpringMVC+Mybatis+Tomcat+MySQL项目新手必看

    以下是一份详细的步骤指南,帮助你从零开始构建这样的项目。 1. **环境配置**: - **Java环境**:首先确保安装了Java JDK,并设置好`JAVA_HOME`环境变量。 - **IDEA**:下载并安装IntelliJ IDEA社区版或专业版,...

Global site tag (gtag.js) - Google Analytics