一.外部配置文件及加载
1.在application.properties中添加
server.servlet.context-path=/boot
所以再访问http://localhost:8888/boot/abc才能访问到,可以把此文件放在项目外
把上面那句改成:server.servlet.context-path=/spring/boot
右键FirstSpringBootApplication->Run Configuration-> Argument -> vm -> 添加参数
--spring.config.location=/Users/wangdadou/app.properties
会发现http://localhost:8888/spring/boot/abc好用,http://localhost:8888/boot/abc不好用,如果同时存在内部和外部的配置文件,外部覆盖内部
2.把项目打成jar包后,调用外部配置文件(大量的配置需要改)
java -jar 项目.jar --spring.config.location=/Users/wangdadou/app.properties
3.项目运行参数(个别参数需要改)
直接vm的参数在添加比如 --server.port=8882
java -jar 项目.jar --server.port=8882
多个地方配置时,如果冲突,优先级:
命令参数(调用外部的配置文件>运行参数) > 内部文件(properties > yaml)
二.日志
日志框架 UCL JUL jboss-logging,logback,log4j,log4j2,slf4j
spring boot默认选用slf4j,logback,
spring boot默认帮我们配置好了日志,不需要再配置
spring boot日志级别:trace(跟踪)<debug(调试)<info(信息)<warn(警告)<error(错误)<fatal(灾难)<off(关闭)
spring boot 默认的日志级别是info(即只打印info级别之后的信息)
操作:
1.在FirstSpringBootApplicationTests文件中添加属性:
Logger log = LoggerFactory.getLogger(FirstSpringBootApplicationTests.class);
2.添加一个测试方法@Test
public void testLog() { //日志级别
log.trace("trace********");
log.debug("debug********");
log.info("info********");
log.warn("warn********");
log.error("error********");
}
3.测试运行,发现只有三个结果出来(info,warn,error)
4.修改app.properties配置文件,添加如下内容
logging.level.com.wl.firstSpringBoot=warn
路径指定主配置类所在包项目地址,设定日志级别
5.再启动测试运行,
把日志写入文件
logging.file=d:/springboot.log
把日志写入文件夹
logging.path=d:/log/
指定日志显示格式:
a.日志显示在控制台
logging.pattern.console=%d{yyyy-MM-dd} [%thread] %-5level %logger{50} - %msg%n
%d: 日期时间,格式
%thread: 线程名
%-5level:显示日志级别,-5表示从左显示5个字符宽度
%logger{50} :设置日志长度
%msg: 日志消息
%n : 回车
b.在文件显示格式:
logging.pattern.console=%d{yyyy-MM-dd} [%thread] %-5level %logger{50} - %msg%n
默认的日志格式,是在jar包中,响应包的xml文件中进行配置
日志的具体使用规范:官方说明