- 浏览: 7937168 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (2425)
- 软件工程 (75)
- JAVA相关 (662)
- ajax/web相关 (351)
- 数据库相关/oracle (218)
- PHP (147)
- UNIX/LINUX/FREEBSD/solaris (118)
- 音乐探讨 (1)
- 闲话 (11)
- 网络安全等 (21)
- .NET (153)
- ROR和GOG (10)
- [网站分类]4.其他技术区 (181)
- 算法等 (7)
- [随笔分类]SOA (8)
- 收藏区 (71)
- 金融证券 (4)
- [网站分类]5.企业信息化 (3)
- c&c++学习 (1)
- 读书区 (11)
- 其它 (10)
- 收藏夹 (1)
- 设计模式 (1)
- FLEX (14)
- Android (98)
- 软件工程心理学系列 (4)
- HTML5 (6)
- C/C++ (0)
- 数据结构 (0)
- 书评 (3)
- python (17)
- NOSQL (10)
- MYSQL (85)
- java之各类测试 (18)
- nodejs (1)
- JAVA (1)
- neo4j (3)
- VUE (4)
- docker相关 (1)
最新评论
-
xiaobadi:
jacky~~~~~~~~~
推荐两个不错的mybatis GUI生成工具 -
masuweng:
(转)JAVA获得机器码的实现 -
albert0707:
有些扩展名为null
java 7中可以判断文件的contenttype了 -
albert0707:
非常感谢!!!!!!!!!
java 7中可以判断文件的contenttype了 -
zhangle:
https://zhuban.me竹板共享 - 高效便捷的文档 ...
一个不错的网络白板工具
https://blog.csdn.net/hry2015/article/details/57410727
slf4j和logback区别:
概念:
slf4j是java的一个日志门面,实现了日志框架一些通用的api;
logback是具体的日志框架。它和log4j是同一个作者,他是为了解决log4j存在的问题而开发的新的日志框架。
slf4j和logback可以简单的看作jdbc和其具体数据库的JDBC的jar包的关系。
推荐使用slf4j,而不是直接使用logback:
slf4j的用法:
[html] view plain copy
log.info("Begin Start {}...{}", str1, str2);
logback
[html] view plain copy
log.info("Begin Start " + str1 +"..." + str2);
如上,sl4j无论是写法和性能都比logback要强
spring boot 集成日志
POM.xml
引入logback和slf4j依赖jar包
[html] view plain copy
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
</dependency>
logback-spring.xml
[html] view plain copy
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!--定义日志文件的存储地址 勿在 LogBack的配置中使用相对路径 -->
<property name="LOG_HOME" value="/tmp/log" />
<!-- 控制台输出 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{30} - %msg%n</pattern>
</encoder>
</appender>
<!-- 按照每天生成日志文件 -->
<appender name="FILE"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${LOG_HOME}/logs/smsismp.log.%d{yyyy-MM-dd}.log</FileNamePattern>
<!--日志文件保留天数 -->
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{30} - %msg%n</pattern>
</encoder>
<!--日志文件最大的大小 -->
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>10MB</MaxFileSize>
</triggeringPolicy>
</appender>
<!-- 日志输出级别 -->
<root level="INFO">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE" />
</root>
<!-- 定义各个包的详细路径,继承root宝的值 -->
<logger name="com.hry.spring.log" level="INFO" />
<logger name="com.hry.spring" level="TRACE" />
<!-- 此值由 application.properties的spring.profiles.active=dev指定-->
<springProfile name="dev">
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径 -->
<property name="LOG_HOME" value="/tmp/log" />
<logger name="org.springboot.sample" level="DEBUG" />
</springProfile>
<springProfile name="pro">
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径 -->
<property name="LOG_HOME" value="/home" />
<logger name="org.springboot.sample2" level="INFO" />
</springProfile>
</configuration>
appender name="STDOUT": 日志打印到控制台
appender name="FILE": 日志按日打印到文件中,最多保留MaxHistory天,每个文件大水为MaxFileSize
encoder:定义输出格式
%d{HH:mm:ss.SSS}——日志输出时间
%thread——输出日志的进程名字,这在Web应用以及异步任务处理中很有用
%-5level——日志级别,并且使用5个字符靠左对齐
%logger{36}——日志输出者的名字
%msg——日志消息
%n——平台的换行符
<root level="INFO">: 定义根logger,通过appender-ref指定前方定义的appender
<logger name="com.hry.spring.log" level="INFO" />:在继承root的logger上对com.hry.spring.log包日志作特殊处理
<springProfile name="dev">: 定义profile的值,只有特定profile的情况下,此间定义的内容才启作用
application.properties
[html] view plain copy
server.port=8080
spring.profiles.active=dev
spring.profiles.active指定本次启动的active的值是什么。本次是dev,则logback-spring.xml里<springProfile name="dev">的内容启作用
用法:
[java] view plain copy
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class LogApplication {
private static final Logger log = LoggerFactory.getLogger(LogApplication.class);
public static void main(String[] args) {
String str1 = "string1";
String str2 = "string2";
log.info("Begin Start {}...{}", str1, str2);
SpringApplication.run(LogApplication.class, args);
log.info("Stop ...");
}
}
slf4j和logback区别:
概念:
slf4j是java的一个日志门面,实现了日志框架一些通用的api;
logback是具体的日志框架。它和log4j是同一个作者,他是为了解决log4j存在的问题而开发的新的日志框架。
slf4j和logback可以简单的看作jdbc和其具体数据库的JDBC的jar包的关系。
推荐使用slf4j,而不是直接使用logback:
slf4j的用法:
[html] view plain copy
log.info("Begin Start {}...{}", str1, str2);
logback
[html] view plain copy
log.info("Begin Start " + str1 +"..." + str2);
如上,sl4j无论是写法和性能都比logback要强
spring boot 集成日志
POM.xml
引入logback和slf4j依赖jar包
[html] view plain copy
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
</dependency>
logback-spring.xml
[html] view plain copy
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!--定义日志文件的存储地址 勿在 LogBack的配置中使用相对路径 -->
<property name="LOG_HOME" value="/tmp/log" />
<!-- 控制台输出 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{30} - %msg%n</pattern>
</encoder>
</appender>
<!-- 按照每天生成日志文件 -->
<appender name="FILE"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${LOG_HOME}/logs/smsismp.log.%d{yyyy-MM-dd}.log</FileNamePattern>
<!--日志文件保留天数 -->
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{30} - %msg%n</pattern>
</encoder>
<!--日志文件最大的大小 -->
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>10MB</MaxFileSize>
</triggeringPolicy>
</appender>
<!-- 日志输出级别 -->
<root level="INFO">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE" />
</root>
<!-- 定义各个包的详细路径,继承root宝的值 -->
<logger name="com.hry.spring.log" level="INFO" />
<logger name="com.hry.spring" level="TRACE" />
<!-- 此值由 application.properties的spring.profiles.active=dev指定-->
<springProfile name="dev">
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径 -->
<property name="LOG_HOME" value="/tmp/log" />
<logger name="org.springboot.sample" level="DEBUG" />
</springProfile>
<springProfile name="pro">
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径 -->
<property name="LOG_HOME" value="/home" />
<logger name="org.springboot.sample2" level="INFO" />
</springProfile>
</configuration>
appender name="STDOUT": 日志打印到控制台
appender name="FILE": 日志按日打印到文件中,最多保留MaxHistory天,每个文件大水为MaxFileSize
encoder:定义输出格式
%d{HH:mm:ss.SSS}——日志输出时间
%thread——输出日志的进程名字,这在Web应用以及异步任务处理中很有用
%-5level——日志级别,并且使用5个字符靠左对齐
%logger{36}——日志输出者的名字
%msg——日志消息
%n——平台的换行符
<root level="INFO">: 定义根logger,通过appender-ref指定前方定义的appender
<logger name="com.hry.spring.log" level="INFO" />:在继承root的logger上对com.hry.spring.log包日志作特殊处理
<springProfile name="dev">: 定义profile的值,只有特定profile的情况下,此间定义的内容才启作用
application.properties
[html] view plain copy
server.port=8080
spring.profiles.active=dev
spring.profiles.active指定本次启动的active的值是什么。本次是dev,则logback-spring.xml里<springProfile name="dev">的内容启作用
用法:
[java] view plain copy
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class LogApplication {
private static final Logger log = LoggerFactory.getLogger(LogApplication.class);
public static void main(String[] args) {
String str1 = "string1";
String str2 = "string2";
log.info("Begin Start {}...{}", str1, str2);
SpringApplication.run(LogApplication.class, args);
log.info("Stop ...");
}
}
发表评论
-
复习:强迫线程顺序执行方式
2019-01-03 23:42 1569方法1: 三个线程,t1,t2,t3,如果一定要按顺序执行, ... -
(转)不错的前后端处理异常的方法
2019-01-02 23:16 2018前言 在 Web 开发中, 我们经常会需要处理各种异常, 这是 ... -
info q的极客时间大咖说等资料下载
2018-08-15 08:40 3465info q的极客时间大咖说等资料下载,还有不少思维导图 链 ... -
CXF 客户端超时时间设置(非Spring配置方式)
2018-07-03 22:38 2232import org.apache.cxf.endpoint. ... -
(转)synchronized关键字画像:正确打开方式
2018-06-14 09:25 490https://mp.weixin.qq.com/s/b3Sx ... -
CountDownLatch的例子
2018-06-13 14:10 684public class StatsDemo { ... -
两道面试题,带你解析Java类加载机制
2018-06-12 16:29 607https://mp.weixin.qq.com/s/YTa0 ... -
Spring中获取request的几种方法,及其线程安全性分析
2018-06-11 09:03 669https://mp.weixin.qq.com/s/KeFJ ... -
内部类小结
2018-06-06 10:25 434https://mp.weixin.qq.com/s/hErv ... -
JVM虚拟机小结1
2018-06-04 20:43 5391 jps -l //列出详细的类名和进程ID 2)jps ... -
windows下自带命令行工具查看CPU资源情况等
2018-06-04 12:53 3097微软提供了不少命令行 ... -
(收藏)深入分析Java的序列化与反序列化
2018-05-30 15:21 614https://mp.weixin.qq.com/s/T2Bn ... -
apache common包中的序列化工具
2018-05-30 09:10 1843什么是序列化 我们的 ... -
JAVA8 JVM的变化: 元空间(Metaspace)
2018-05-24 22:30 963本文将会分享至今为至我收集的关于永久代(Permanent G ... -
(转)服务器性能指标(一)——负载(Load)分析及问题排查
2018-05-21 21:03 1360原创: Hollis Hollis 负载 ... -
(转)对象复用
2018-05-20 15:27 857public class Student { priv ... -
mapreduce中入门中要注意的几点
2018-05-06 08:59 670在 mapreduce中,比如有如下的词: I love b ... -
HDFS的基本操作
2018-05-02 21:47 937-mkdir 在HDFS创建目录 ... -
一个不错的开源工具类,专门用来解析日志头部的,好用
2018-05-02 20:00 768一个不错的开源工具类,专门用来解析日志头部的,好用。 http ... -
介绍个不错的RESTFUL MOCK的工具wiremock
2018-04-27 21:02 1904介绍个不错的RESTFUL MOCK的工具wiremock,地 ...
相关推荐
Spring Boot与Logback源码解读涉及了Spring Boot框架在启动过程中如何与Logback日志系统集成,以及Logback是如何进行初始化和配置的。下面将详细解读Logback和Spring Boot的相关知识点。 ### Logback初始化过程 ...
通过这个Demo,开发者可以学习如何在SpringBoot应用中集成ClickHouse,实现高效的数据存储和查询,同时利用Logback进行日志记录,为大数据项目提供一个稳定、可扩展的基础架构。这个模板对于初学者和经验丰富的...
首先,让我们深入了解SpringBoot与Logback的集成。SpringBoot默认支持Logback作为日志系统。在`pom.xml`文件中,你需要添加Logback的依赖项,确保如下所示: ```xml <groupId>ch.qos.logback <artifactId>...
logback是 SpringBoot默认集成的日志框架,它相对来说是优秀于log4j的。 在logback中,Appender是日志输出的关键组件,自定义Appender非常简单,继承一下AppenderBase类即可。AppenderBase类有三个子类:...
通过上述介绍,我们可以看出Spring Boot与Logback的集成使得日志管理变得简单而强大。开发者可以根据需求定制化日志配置,以实现最佳的日志记录效果。对于大型项目,合理的日志配置是监控系统健康状况、定位问题的...
当使用logback作为日志框架时,通常我们会将配置文件放在`src/main/resources`目录下,命名为`logback-spring.xml`,这是因为Spring Boot默认支持`logback-spring.xml`,它能与Spring的自动配置机制集成。...
Spring Boot默认集成了Logback作为日志处理系统,因为它提供高效的日志记录能力并易于配置。本篇将详细介绍如何在Spring Boot项目中整合Logback,实现日志的持久化保存到文件。 1. **添加依赖** 首先,我们需要在...
在本文中,我们将深入探讨如何使用Spring Boot 2.7.3版本与Elasticsearch、Logstash和Kibana(通常称为ELK Stack)进行集成,以便高效地收集、存储和分析应用程序日志。ELK Stack是日志管理和监控的强大工具,其中...
集成Logback的关键在于配置文件`logback.xml`。这个XML文件定义了日志输出的级别、格式、目标等。在`spring-boot-starter-web`起步依赖中,已经包含了对Logback的支持,因此我们只需要创建或提供自定义的`logback....
此小demo是springboot集成dubbo,redis,mybatis,logbakc,aspect,等框架,利用Configuration配置,摆脱了xml形式的配置文件,实现springboot微服务,
SpringBoot之LogBack配置详解 LogBack是基于Slf4j的日志框架,默认集成在Spring Boot中。默认情况下,Spring Boot是以INFO级别输出到控制台。LogBack的日志级别是:ALL 。 配置LogBack可以直接在application....
现在很流行springboot的开发,小编闲来无事也学了学,开发过程中遇见了log4j日志的一个小小问题,特此记载。 首先在pox.xml中引入对应的maven依赖: <!-- 引入log4j--> <groupId>org.springframework....
默认情况下,Spring Boot使用Logback作为其日志系统,因为Logback在性能上优于Log4j,并且与Spring框架有良好的集成。本教程将详细介绍如何在Spring Boot中自定义日志配置,特别是通过`logback-spring.xml`文件来...
SpringBoot 集成 Jasypt 对数据库加密以及踩坑 SpringBoot 集成 Jasypt 对数据库加密是一个非常重要的安全机制,通过对数据库密码的加密,可以保护数据库的安全,防止未经授权的访问。在本文中,我们将介绍如何在 ...
3. **logback-access**:与Servlet容器集成,支持通过HTTP访问日志。 日志级别是控制日志输出的关键,包括: 1. **TRACE**:极其详细的运行信息,一般不建议在业务代码中使用,除非有特殊需求。在生产环境中,通常...
Logback分为三个主要组件:`logback-core`(基础框架)、`logback-classic`(实现了SLF4J API)和`logback-access`(与Servlet容器集成)。 2. **配置文件** Spring Boot中的Logback配置通常位于`src/main/...
在SpringBoot项目中,MyBatis与Spring的集成使得我们可以方便地进行DAO层的开发,实现灵活的数据访问操作,同时保持代码的简洁性。 **Redis** Redis是一个高性能的键值数据库,通常用于缓存和消息中间件。在...
因此,需要更强大、灵活的日志解决方案——logback,它不仅支持日志的分时分类管理,而且与Spring Boot有很好的集成,同时实现了SLF4J(Simple Logging Facade for Java)接口,是log4j的后继产品,提供了更加丰富的...