spring boot之log日志
来源:互联网 发布:便笺元数据损坏没事不 编辑:程序博客网 时间:2024/06/08 15:20
一提起log,相信大部分在开发项目的人都会想到log4j,这个强大的集成日志;
log4j就是帮助开发人员进行日志输出管理的API类库,可以配置文件灵活的设置日志信息的优先级、日志信息的输出目的地以及日志信息的输出格式;
我们先看看之前我们怎么用这个插件;
一、java工程直接引用(主要是log4j提供的PropertyConfigurator配置类)
我们先建个工程:
最终目录结构为:
import org.apache.log4j.BasicConfigurator;import org.apache.log4j.Logger;import org.apache.log4j.PropertyConfigurator;public class Log4jTest { static Logger logger = Logger.getLogger(Log4jTest.class); public static void get(){ //注意该方法的参数: Properties properties // InputStream file // String fileName // URL url //这几种方法都可以引入 PropertyConfigurator.configure("../log/log4j.properties"); } public static void main(String args[]){ //静默配置(无配置文件时可使用) /*BasicConfigurator.configure();*/ get(); logger.info("aa"); logger.error("aa"); }}
引入log4j的依赖包
<dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.4.1</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.4.1</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency>
建一个最简单的log4j.properties来配置
log4j.rootLogger=INFO,logfilelog4j.appender.logfile=org.apache.log4j.FileAppenderlog4j.appender.logfile.file=../log/loglog4j.appender.logfile.Append=truelog4j.appender.logfile.layout=org.apache.log4j.PatternLayout
运行,即可;我们打开log文件夹下的log文件,即可看到正确输出到文件中。
二、spring项目
在spring框架中我们通过tomcat等服务器进行启动,不用我们自启动来引入配置了,这种情况下我们应该怎样引入log4j呢,这个放心,spring这么强大,已经集成了各种各样的插件,当然也包括log4j这个常用的插件。
第一种简单的就是把log4j.properties放到classpath根目录下,spring会自动扫描装载;
第二种是:
在web.xml文件中 配置 加载 log4j.properties的属性
<!-- 加载log4j的配置文件log4j.properties --> <context-param> <param-name>log4jConfigLocation</param-name> <param-value>/WEB-INF/log4j.properties</param-value> </context-param> <!-- 设定刷新日志配置文件的时间间隔,这里设置为10s --> <context-param> <param-name>log4jRefreshInterval</param-name> <param-value>10000</param-value> </context-param> <!-- 加载Spring框架中的log4j监听器Log4jConfigListener --> <listener> <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> </listener> <!-- 为避免项目间冲突,定义唯一的 webAppRootKey --> <context-param> <param-name>webAppRootKey</param-name> <param-value>scheduleProject</param-value> </context-param>
然后正常使用就可以了;
三、spring boot使用
1.spring boot可以当成一个application,因此可以用第一种方法中的PropertyConfigurator在启动类中直接把配置引入;
2.利用spring boot自带的logback(据说是log4j的升级版)
因为它自己已经集成进去了,所以我们直接使用就好了,依赖包其实加不加都可以
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </dependency>
具体的log的配置文件一如既往,我们在application.properties中进行配置
#logging.file=my.loglogging.path=../log#*为报名,包底下的class文件都为这个级别logging.level.* = DEBUG
默认配置属性支持
下面介绍几种在application.properties就可以配置的日志相关属性。
控制台输出
日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出。
Spring Boot中默认配置ERROR、WARN和INFO级别的日志输出到控制台。您还可以通过启动您的应用程序–debug标志来启用“调试”模式(开发的时候推荐开启),以下两种方式皆可:
在运行命令后加入–debug标志,如:$ java -jar springTest.jar –debug
在application.properties中配置debug=true,该属性置为true的时候,核心Logger(包含嵌入式容器、hibernate、spring)会输出更多内容,但是你自己应用的日志并不会输出为DEBUG级别。
文件输出
默认情况下,Spring Boot将日志输出到控制台,不会写到日志文件。如果要编写除控制台输出之外的日志文件,则需在application.properties中设置logging.file或logging.path属性。
logging.file,设置文件,可以是绝对路径,也可以是相对路径。如:logging.file=my.log
logging.path,设置目录,会在该目录下创建spring.log文件,并写入日志内容,如:logging.path=/var/log
如果只配置 logging.file,会在项目的当前路径下生成一个 xxx.log 日志文件。
如果只配置 logging.path,在 /var/log文件夹生成一个日志文件为 spring.log
注:二者不能同时使用,如若同时使用,则只有logging.file生效
默认情况下,日志文件的大小达到10MB时会切分一次,产生新的日志文件,默认级别为:ERROR、WARN、INFO
级别控制
所有支持的日志记录系统都可以在Spring环境中设置记录级别(例如在application.properties中)
格式为:’logging.level.* = LEVEL’
logging.level:日志级别控制前缀,*为包名或Logger名
LEVEL:选项TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF
举例:
logging.level.com.dudu=DEBUG:com.dudu包下所有class以DEBUG级别输出
logging.level.root=WARN:root日志以WARN级别输出
注:1.log.error(“”,e)和log.error(e)的区别
log.error(“”,e)可以打印完整的信息
log.error(e)只会打印关键信息
2、maven引入log4j的依赖包一定要注意,因为好些依赖包都集成了log4j,所以可能会冲突,需要用exclusion来把不需要的依赖包中的log4j给去掉
附:1.log4j.properties参数说明:
http://blog.csdn.net/fgh2009/article/details/7202399
2.log4j可以把日志直接输出到kafka中
- spring boot之log日志
- spring boot log日志
- spring boot整合slf4j-log日志
- spring boot学习1之main和tomcat启动及log日志
- Spring Boot之日志配置
- Spring boot源码分析-log日志系统(6)
- spring boot 日志输出到 log.path_IS_UNDEFINED目录
- Spring Boot第五弹:Spring Boot之日志
- Spring Boot AOP Log
- Spring Boot系列之十 日志配置
- Spring Boot 多线程开发之异步日志
- Spring Boot 之AOP 日志组件
- spring log日志
- spring aop log日志
- Spring Boot日志管理
- Spring Boot日志管理
- Spring Boot 日志
- Spring Boot日志管理
- 07:收集瓶盖赢大奖
- 微信开发者工具预览报-2001错误
- Kotlin实战——LacWeather
- 【兴趣书签】情商问题
- Android权限之sharedUserId和签名
- spring boot之log日志
- python openpyxl学习
- 表单验证<AngularJs>
- vue中怎样让子组件改变父组件的数据呢?
- JQuery之Ajax方法
- springboot学习----事件监听
- 5类系统推荐算法
- Hive中的四种排序
- Activity取消界面切换的默认动画方法