日志门面 (日志的抽象层) | 日志实现 |
| Log4j JUL(java.util.logging) Log4j2 Logback |
- 日志级别 trace<debug<info<warn<error
如何让系统中所有的日志都统一到slf4j;
==1、将系统中其他日志框架先排除出去;==
==2、用中间包来替换原有的日志框架;==
==3、我们导入slf4j其他的实现=
如何在系统中使用SLF4j https://www.slf4j.org
以后开发的时候,日志记录方法的调用,不应该来直接调用日志的实现类,而是调用日志抽象层里面的方法;
给系统里面导入slf4j的jar和 logback的实现jar
Logger logger = LoggerFactory.getLogger(HelloWorld.class);
logger.info("Hello World");
总结:
1)、SpringBoot底层也是使用slf4j+logback的方式进行日志记录
2)、SpringBoot也把其他的日志都替换成了slf4j;
3)、中间替换包?
4)、如果我们要引入其他框架?一定要把这个框架的默认日志依赖移除掉?
Spring框架用的是commons-logging;
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
**==SpringBoot能自动适配所有的日志,而且底层使用slf4j+logback的方式记录日志,引入其他框架的时候,只需要把这个框架依赖的日志框架排除掉即可;==**
日志输出格式:
%d表示日期时间,
%thread表示线程名,
%-5level:级别从左显示5个字符宽度
%logger{50} 表示logger名字最长50个字符,否则按照句点分割。
%msg:日志消息,
%n是换行符
-->
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
SpringBoot:底层是Spring框架,Spring框架默认是用JCL;‘
==SpringBoot选用 SLF4j和logback;==
配置文件还是做成日志实现框架自己本身的配置文件;
Spring-boot默认给我们使用的是 info级别的,,日志会在比她更高的级别生效
但是可以设置,修改默认-->applicationproperties里面--->loggin.level.com.atguigu=trace
1.Jsp页面里面的框架相关的表达式:
th:text-->标签体里的内容
单标签采用行内表达式-->[[]]
[()] th:utext<-----无转义的
<!--th:text="${user} ==等价于== [[${user}]]"-->
2.Controller类里面的方法,转到模板下面的主页
@RequestMapping({"/","/index.html"})
public String index(){
return "index";
}
对于返回的index字符串 进行了拼接前后缀,使得可以访问模板下面的主页
<!-- 布局功能的支持程序 thymeleaf3主程序 layout2以上版本 -->
<!-- thymeleaf2 layout1-->
Spring-boot2.0和spring5.0结合的
中英文替换:
国际化资源文件的 基础名 默认为 String dasename = “messages”;我们的配置文件可以直接放在类路径的下 message.properties里面
可以做 配置文件中设置 指定值: spring.messages.basename=login
- 项目编码格式
全局默认设置:file--othersetting
当前项目设置:file--setting
- 国际化locale (区域是信息对象)
区域信息解析器--->在WebMvcAutoConfiguration类里面,默认根据请求头带来的区域信息获取Locale进行国际化
改变默认-->可以在连接上携带区域信息, 在标签里面添加
th:href="@{/index.html?l=zh_CN}”
th:href="@{/index.html?l=en_US}”
使用模板引擎后的写法:
th:href="@{/index.html(l='zh_CN')}
th:href="@{/index.html(l='en_US')}"
StringUtils.isEmpty(l)他是 哪个包的方法
org.apache.commons.lang.StringUtils类是用于操作java.lang.String类的,而且此类是null安全的,即如果输入参数String为null,则不会抛出NullPointerException异常。