小试牛刀
由于springboot默认集成logback,所以不用引入任何pom新坐标
package com.greentran.origin.controller;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@Validated
@RestController
@RequestMapping("/user")
public class userController {
private Logger logger = LoggerFactory.getLogger(this.getClass());
@PostMapping(value = "login")
public String login() {
logger.info("nihaoshijie");
return "登录返回值111";
}
}
spring-boot-starter-web自带log4j要移除
由于之前发生过log4j漏洞,最好移除避免甲方漏送扫描出问题
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<!-- 移除logging和log4j子类-->
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
<!-- 移除嵌入式tomcat插件-->
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
路径设置
一般会写个固定盘符,比如c盘下的x.log,缺点每次访问服务器才能看日志
想通过url看日志,进行如下配置
不过通过Url看日志也有几个问题:是否有安全问题,每次发布日志会被清理。根据具体情况调整日志路名
-
获取项目名字明确在tomcat下发布静态资源的相对路径,这里要约定项目名字和tomcat发布包名字一致
-
日志发布到tomca网站下
-
-
通过url访问日志
http://发布后的地址:端口/LvChuangNews/log-all.log http://发布后的地址:端口/LvChuangNews/log-error.log
dev与prod
原则:
- dev不需要写log文件–控制台可以看日志
- dev显示到debug级别
- prod显示到info级别–debug会打印sql,日志太大,很多项目日志都有几个G
具体配置的话,如果开发所有的方法都是debug,会打印出定时任务的日志影响控制台内容,所以只规定部分包使用debug,如图1
并且application-prod.yml不配置日志级别,默认使用logback-spring.xml里的info级别如图2
写入数据库
不需要写入数据库,感觉意义不大