学做网站好做吗,网站降权不更新文章可以吗,如何开电商平台,手机网站菜单代码感谢博主 https://www.cnblogs.com/fishlittle/p/17950944
依赖
SpringBoot 的 spring-boot-starter/ spring-boot-starter-web 自带的是 logback 日志#xff0c;若要使用 log4j2 日志#xff0c;需要引入对应依赖。logback 日志和 log4j2 日志都是对 slf4j 门面的实现若要使用 log4j2 日志需要引入对应依赖。logback 日志和 log4j2 日志都是对 slf4j 门面的实现只能存在一个且必须存在一个不存在或者存在多个都会出错。因此在使用 log4j2 日志时必须要在依赖中把 logback 给 exclude 掉。 并且使用 log4j2 日志还需要适配器 log4j-slf4j-impl它跟 SpringBoot 的 starter 自带的 log4j-to-slf4j 是相互冲突的因此还需要将 log4j-to-slf4j 也 exclude 掉。因为 SpringBoot 的 starter 中已经带有 slf4j 门面了因此无需再引入 slf4j 依赖。
这里推荐 idea 的maven 面板工具在Dependencies 里能查看jar 间的依赖关系很不错。
因为 2 的原因故 springboot-starter 的依赖需要剔除 自身 logback
dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactIdexclusionsexclusiongroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-logging/artifactId/exclusion/exclusions/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-log4j2/artifactId/dependency
注意很多第三方库中也会包含 logback 所以也需要剔除。比如 jxls
dependencygroupIdorg.jxls/groupIdartifactIdjxls/artifactIdexclusionsexclusiongroupIdch.qos.logback/groupIdartifactIdlogback-core/artifactId/exclusion/exclusions/dependency log4j2.xmlresources目录下
?xml version1.0 encodingUTF-8?
!--日志级别以及优先级排序: OFF FATAL ERROR WARN INFO DEBUG TRACE ALL --
!-- Configuration 后面的 status 用于设置 log4j2 自身内部的信息输出可以不设置当设置成 trace 时可以看到 log4j2 内部各种详细输出--
configuration statusINFO!--先定义所有的 appender--appenders!--输出日志信息到控制台--console nameConsole targetSYSTEM_OUT!--控制日志输出的格式--PatternLayout pattern%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n//console/appenders!--然后定义 logger只有定义了 logger 并引入的 appenderappender 才会生效--!--root用于指定项目的根日志如果没有单独指定 Logger则会使用 root 作为默认的日志输出--loggersroot levelinfoappender-ref refConsole//root/loggers
/configuration
Springboot 的日志配置
logging:config: classpath:log4j2.xml
ok 了。
测试
RestController
public class DemoController {private final Logger logger LoggerFactory.getLogger(DemoController.class);GetMapping(/test)public String test(RequestParam String name){logger.info(name);return name;}}