怎样做电子商务网站,软件开发者模式怎么打开,如何宣传推广自己品牌,WordPress浮动导航插件SpringBoot的默认使用
观察SpringBoot的Maven依赖图 可以看出来#xff0c;SpringBoot默认使用的日志系统是使用Slf4j作为门户#xff0c;logback作为日志实现 编写一个测试代码看是否是这样 SpringBootTest
class SpringbootLogDemoApplicationTests {//使用Slf4j来创建LOG…SpringBoot的默认使用
观察SpringBoot的Maven依赖图 可以看出来SpringBoot默认使用的日志系统是使用Slf4j作为门户logback作为日志实现 编写一个测试代码看是否是这样 SpringBootTest
class SpringbootLogDemoApplicationTests {//使用Slf4j来创建LOGGER对象public static final Logger LOGGER LoggerFactory.getLogger(SpringbootLogDemoApplicationTests.class);Testpublic void test01() throws Exception {LOGGER.error(error);LOGGER.warn(wring);LOGGER.info(info);LOGGER.debug(debug);LOGGER.trace(trace);//使用Log4j来获取Logger对象org.apache.logging.log4j.Logger logger LogManager.getLogger(SpringbootLogDemoApplicationTests.class);logger.info(log4j info);}
}
运行结果如下 2023-10-22 17:21:16.307 ERROR 8912 --- [ main] com.zmt.SpringbootLogDemoApplicationTests : error 2023-10-22 17:21:16.308 WARN 8912 --- [ main] com.zmt.SpringbootLogDemoApplicationTests : wring 2023-10-22 17:21:16.313 INFO 8912 --- [ main] com.zmt.SpringbootLogDemoApplicationTests : info 2023-10-22 17:21:16.337 INFO 8912 --- [ main] com.zmt.SpringbootLogDemoApplicationTests : log4j info 可以看到输出格式是一样的说明即使使用Log4j获取的Logger对象打印日志实际上还是logback来实现日志输出。
SpringBoot的日志配置 我们可以在aplication.properties文件中进行简单的配置 #指定自定义Logger对象的输出日志级别
logging.level.com.zmt debug#指定控制台输出消息格式
logging.pattern.console[%-5level] %d{yyyy-MM-dd HH:mm:ss} %c [%thread] %msg%n
#指定日志文件存放的目录默认文件名为spring.log
logging.file.path/logs/springboot/
#指定日志文件消息格式
logging.pattern.file[%-5level] %d{yyyy-MM-dd HH:mm:ss} %c [%thread] %msg%n 运行观察控制台和文件 但是application.properties的配置并不能满足实际需求比如文件拆分规则等我们可以自己添加对应日志框架的配置文件来代替application.properties的日志配置 接下来添加一个logback.xml文件 ?xml version1.0 encodingUTF-8?
configurationproperty namepattern value[%-5level] %d{yyyy-MM-dd HH:mm:ss} %M %L [%thread] %m%n/propertyappender nameconsole classch.qos.logback.core.ConsoleAppender!--控制输出流对象默认为System.out黑色字体--targetSystem.err/targetencoder classch.qos.logback.classic.encoder.PatternLayoutEncoderpattern${pattern}/pattern/encoderfilter classch.qos.logback.classic.filter.LevelFilter!--只输出error级别的信息--levelERROR/levelonMatchACCEPT/onMatchonMismatchDENY/onMismatch/filter/appender!--自定义Logger--logger namecom.zmt levelinfo additivitydalseappender-ref refconsole//logger
/configuration 运行测试代码观察控制台输出 只输出了红色字体的error级别日志。配置文件生效 使用SpringBoot解析日志配置
如果使用SpringBoot解析日志配置我们需要将logback.xml文件修改为logback-spring.xml。因为logback.xml加载过早无法解析扩展标签。而修改为logback-spring.xml后可以解析SpringBoot的扩展标签。 在xml文件中添加springProfile标签 appender nameconsole classch.qos.logback.core.ConsoleAppender!--控制输出流对象默认为System.out黑色字体--targetSystem.err/targetencoder classch.qos.logback.classic.encoder.PatternLayoutEncoder!--开发环境下解析成一种消息格式--springProfile namedevpattern${pattern}/pattern/springProfile!--生产环境下解析成另一种消息格式--springProfile namepropattern[%-5level] %d{yyyy-MM-dd HH:mm:ss} %M %L [%thread] %m%n/pattern/springProfile/encoderfilter classch.qos.logback.classic.filter.LevelFilter!--只输出error级别的信息--levelERROR/levelonMatchACCEPT/onMatchonMismatchDENY/onMismatch/filter/appender 在application.properties添加配置指定环境 #设置为开发环境
spring.profiles.activedev 运行观察控制台是否是输出“---” 修改为pro环境后再次运行观察 可以看到输出格式不同。配置生效 SpringBoot切换日志实现 在pom文件中进行修改 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactIdexclusions!-- 排除jar包 --exclusiongroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-logging/artifactId/exclusion/exclusions/dependency!-- 引入jar包 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-log4j2/artifactId/dependency 运行发现又使用了log4j2的默认配置打印日志输出。