当前位置: 首页 > news >正文

南昌网站建设联系方式html 音乐网站

南昌网站建设联系方式,html 音乐网站,网站编辑做seo好做吗,峰峰信息港免费发布平台slf4j和log4j的区别与使用 文章目录 1.简介2.使用教程3.常见报错解决(持续更新) 1.简介 官网:https://www.slf4j.org/manual.html (1)简单日记门面(simple logging Facade for Java)SLF4J是为各种loging APIs提供一个简单统一的接口。 (…

slf4j和log4j的区别与使用

文章目录
    • 1.简介
    • 2.使用教程
    • 3.常见报错解决(持续更新)

1.简介

官网:https://www.slf4j.org/manual.html
(1)简单日记门面(simple logging Facade for Java)SLF4J是为各种loging APIs提供一个简单统一的接口。

(2)slf4j并不是一种具体的日志系统,而是一个用户日志系统的facade。

(3)在部署时,选择不同的日志系统包,即可自动转换到不同的日志系统上。
如:选择JDK自带的日志系统,则只需要将slf4j-api-XXX.jar和slf4j-jdkXXX.jar放置到classpath中即可,若想换成log4j的日志系统,仅需要用slf4j-log4jXXx.jar替换slf4j-jdkXXX.jar即可

(4)slf4j和log4j比较:
①log4j看成是一个完整的日志库;而slf4j是一个日志库的规范接口,可以根据不同的日志包使用不同的日志库。
②日志中需要传入参数时,log4j一般是使用字符串进行拼接的方式;
slf4j使用占位符,比字符串拼接更加高效。如logger.error("sql为 {} ",sql)。

(5)slf4j日志级别
Slf4j日志级别,级别由低到高,设置的级别约低,打印的日志越多
①trace: 一般不会使用,在日志里边也不会打印出来,最低的一个日志级别。
②debug: 一般放于程序的某个关键点的地方,用于打印一个变量值或者一个方法返回的信息之类的信息
③info 一般处理业务逻辑的时候使用,就跟 system.err打印一样,用于说明此处是干什么的。
④warn:警告,不会影响程序的运行,但是值得注意。
⑤error: 用户程序报错,必须解决的时候使用此级别打印日志。

2.使用教程

官网上最新稳定版是1.7.32,前阵子log4j出重大漏洞了,这里我们配合logback(log4j的改良版,性能更好)使用。
(1)在pom.xml引入依赖

  <!--slf4j依赖--><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.32</version></dependency><!-- logback 依赖 --><dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.2.3</version></dependency>

(2)在springBoot项目中添加一段controller代码

package com.example.springb_web.controller;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;@Controller
public class VisualController {private Logger logger = LoggerFactory.getLogger(VisualController.class);@RequestMapping(value="/test")@ResponseBodypublic String test(){String msg = "fucking good";logger.info("slf4j print info msg:{}",msg);logger.debug("slf4j print debug msg:{}",msg);return msg;}}

这里通过http://localhost:8080/test访问可以看到控制台输出如下,可以看到info的输出了,debug没有,因为springboot内部集成了slf4j,默认是info级别:
在这里插入图片描述

(3)只在控制台打印,application.yml文件配置如下:

# slf4j日志配置
logging:# 配置级别level:root: info#分包配置级别,即不同的目录下可以使用不同的级别com.example.springb_web.controller: debug

改完之后发现输出如下:
在这里插入图片描述
(4)把日志输出到文件,application.yml配置:

# slf4j日志配置
logging:config: classpath:logback.xml

在resource下新建logback.xml:

<?xml version="1.0" encoding="UTF-8"?>
<configuration><!--info日志文件--><appender name="INFO_FILE"class="ch.qos.logback.core.rolling.RollingFileAppender"><!--日志文件相对路径和名称--><file>./apilogs/info/xxxx_-${HOSTNAME}.log</file><append>true</append><!--根据日志文件的大小来滚动(即创建新的)日志文件--><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>./apilogs/info/archive/xxxx_-${HOSTNAME}-%d.%i.log</fileNamePattern><!--只保留最近30天的日志--><maxHistory>30</maxHistory><timeBasedFileNamingAndTriggeringPolicyclass="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><!--超过10MB便会滚动日志文件--><maxFileSize>10MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy></rollingPolicy><!-- 配置日志的输出格式 --><encoder><pattern>%date %level [%thread] %logger{10} %msg%n</pattern><charset>UTF-8</charset></encoder></appender><!--异步处理--><appender name="ASYNC_INFO_FILE" class="ch.qos.logback.classic.AsyncAppender"><queueSize>512</queueSize><appender-ref ref="INFO_FILE" /></appender><!--debug日志文件--><appender name="DEBUG_FILE"class="ch.qos.logback.core.rolling.RollingFileAppender"><!--日志文件相对路径和名称--><file>./apilogs/debug/xxxx_-${HOSTNAME}.log</file><append>true</append><!--根据日志文件的大小来滚动(即创建新的)日志文件--><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>./apilogs/debug/archive/xxxx_-${HOSTNAME}-%d.%i.log</fileNamePattern><!--只保留最近30天的日志--><maxHistory>30</maxHistory><timeBasedFileNamingAndTriggeringPolicyclass="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><!--超过10MB便会滚动日志文件--><maxFileSize>10MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy></rollingPolicy><!-- 配置日志的输出格式 --><encoder><pattern>%date %level [%thread] %logger{10} %msg%n</pattern><charset>UTF-8</charset></encoder></appender><!--异步处理--><appender name="ASYNC_DEBUG_FILE" class="ch.qos.logback.classic.AsyncAppender"><queueSize>512</queueSize><appender-ref ref="DEBUG_FILE" /></appender><!--控制台输出--><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><encoder><!--输出格式--><pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n</pattern><charset>UTF-8</charset></encoder></appender><!--异步处理--><appender name="ASYNC-STDOUT" class="ch.qos.logback.classic.AsyncAppender"><queueSize>512</queueSize><appender-ref ref="STDOUT" /></appender><!--在info级别下,将包名所在org.springframework的日志全部打印到控制台--><!--additivity被设置为'false',这意味着日志事件不会传递给父级记录器--><logger name="org.springframework" level="info" additivity="false"><appender-ref ref="ASYNC-STDOUT" /></logger><!--在debug级别下,会打印记录sql的相关日志,将包名为org.apache.ibatis下的日志输出到debug日志文件--><logger name="org.apache.ibatis" level="debug" additivity="false"><appender-ref ref="ASYNC_DEBUG_FILE" /></logger><!--所有业务相关的info日志,打印到控制台,并输出到info日志文件--><root level="info"><appender-ref ref="ASYNC-STDOUT" /><appender-ref ref="ASYNC_INFO_FILE" /></root>
</configuration>

可以看到控制台和日志文件都成功输出了:

在这里插入图片描述

3.常见报错解决(持续更新)

(1)yml配置报错如:
“Failed to bind properties under ‘logging.level’”
可能跟版本有关,参考yml配置上面的使用教程的第(3)步

(2)启动时报错:
“class path contains multiple slf4j bindings
found binding in …”
不要忽视这种警告,若有多个jar包类冲突,需要把加载jar包顺序调整,正确的那个,比如slf4j-log4j12jar包放在最上面。

http://www.dtcms.com/a/489197.html

相关文章:

  • 响应式网站建站工具河北网站设计推荐柚米科技
  • iis7 默认网站目录帮企业做网站赚钱
  • 木木科技 网站艰涩阿里wordpress怎么安装教程
  • dw网站根目录怎么做dede门户网站模版
  • 做英文网站赚钱重庆住房和城乡建设部网站的打印准考证
  • 网站地图制作方法潍坊企业网站设计
  • 全球建站免费网站建设推广服务
  • 中文html网站模板下载建设厅网站上报名
  • c 网站开发实战好大夫在线网站官网做提眉的医生
  • 网站seo的关键词排名怎么做的手机可以做软件开发吗
  • 做搜狗手机网站优化软软件开发包括哪些阶段
  • 优化百度seo云南网站优化排名
  • 电子商城网站建设参考文献淘客网站做弹窗广告
  • 西宁网站托管WordPress书籍插件
  • node.js做网站织梦dedecms网站更换域名后文章图片路径批量修改
  • 遵义网站建设oadmin石狮网站建设哪家好
  • 成都网站制作公司怎样用盒子做汽车视频网站
  • asp.net网站转php建筑网络图片
  • 无备案网站 阿里联盟庆阳网红
  • 自适应网站做多大尺寸平面设计的大专学校
  • 珠海高端网站制作微商软件
  • 沈阳三好街做网站公司深圳外贸公司集中在哪
  • 建设小型网站价钱域名注册域名详细流程
  • asp网站ftp入侵网站建设mingxinsh
  • 做网站青岛杭州网站建设设计公司哪家好
  • 遵义住房城乡建设厅网站南皮县网站建设
  • php网站开发试题黄冈网站排名最高
  • 外包做网站不付尾款wordpress自助发布插件
  • 有做翻页相册的网站吗阿里云网站怎么做
  • phpcmsv9手机网站开发网站初期推广