@Configuration
public class Log4j2Config {
@Bean
public Logger logger() {
Resource resource = new ClassPathResource("log4j2.properties");
String configFileName = (resource.getFilename() == null) ? "log4j2.properties" : resource.getFilename();
System.setProperty("log4j.configurationFile", configFileName);
return LogManager.getLogger(Log4j2Config.class);
}
}
public class ServletContainersInitConfig extends AbstractAnnotationConfigDispatcherServletInitializer {
protected Class[] getRootConfigClasses() {
return new Class[0];
}
protected Class[] getServletConfigClasses() {
return new Class[]{SpringMvcConfig.class};
}
protected String[] getServletMappings() {
return new String[]{"/"};//拦截所有静态资源
}
//乱码处理
@Override
protected Filter[] getServletFilters() {
CharacterEncodingFilter filter = new CharacterEncodingFilter();
filter.setEncoding("UTF-8");
return new Filter[]{filter};
}
@PostConstruct
public void initLog4j2() {
logger.debug("Initializing Log4j2");
// 执行log4j2的初始化操作
}
}
@Configuration
@ComponentScan("com.***")
@EnableWebMvc
public class SpringMvcConfig {
}
@EnableWebMvc
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
//当访问/pages/????时候,从/pages目录下查找内容
registry.addResourceHandler("/pages/**").addResourceLocations("/pages/");
registry.addResourceHandler("/js/**").addResourceLocations("/js/");
registry.addResourceHandler("/css/**").addResourceLocations("/css/");
registry.addResourceHandler("/plugins/**").addResourceLocations("/plugins/");
}
}
//Controller类 打印日志
@Log4j2
@RestController
@RequestMapping("/books")
public class BookController {
private static final Logger logger = LogManager.getLogger(BookController.class);
//Logger对象的实例化通过注解来实现,所以此处可以直接调用日志方法
public BookController() {
logger.debug("Creating a new instance of BookController");
}
@PostMapping
public String save(@RequestBody Book book){
System.out.println("book save success");
logger.info("book save ==> "+ book);
log.debug("book save ==> " + book); // 添加一条额外的日志输出语句
return "{'module':'book save success'}";
}
@GetMapping
public List getAll(){
List bookList = new ArrayList ();
Book book1 = new Book();
book1.setType("计算机");
book1.setName("SpringMVC入门教程");
book1.setDescription("小试牛刀");
bookList.add(book1);
Book book2 = new Book();
book2.setType("计算机");
book2.setName("SpringMVC实战教程");
book2.setDescription("一代宗师");
bookList.add(book2);
Book book3 = new Book();
book3.setType("计算机丛书");
book3.setName("SpringMVC实战教程进阶");
book3.setDescription("一代宗师呕心创作");
bookList.add(book3);
System.out.println("book getAll is running ...");
logger.info("book getAll is running ...");
log.debug("book getAll is running ..."); // 添加一条额外的日志输出语句
return bookList;
}
}
//log4j2.properties
# 日志级别
log4j2.rootLogger.level = info
# 打印到控制台
log4j2.appender.console.type = Console
log4j2.appender.console.name = Console
log4j2.appender.console.layout.type = PatternLayout
log4j2.appender.console.layout.pattern = [%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n
log4j2.appender.console.level = info
# 打印到log文件
log4j2.appender.file.type = File
log4j2.appender.file.name = File
log4j2.appender.file.fileName = ./logs/mylog.log
log4j2.appender.file.layout.type = PatternLayout
log4j2.appender.file.layout.pattern = [%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n
log4j2.appender.file.level = info
# 将日志输出到控制台和文件
log4j2.logger.com.mycompany = info, console, file
//pom.xml 依赖关系
4.0.0
com.***
springmvc_07_rest_case
1.0-SNAPSHOT
war
javax.servlet
javax.servlet-api
3.1.0
provided
org.springframework
spring-webmvc
5.2.10.RELEASE
com.fasterxml.jackson.core
jackson-databind
2.9.0
org.apache.logging.log4j
log4j-core
2.17.1
org.apache.logging.log4j
log4j-api
2.17.1
org.apache.logging.log4j
log4j-web
2.17.1
org.projectlombok
lombok
RELEASE
compile
org.apache.maven.plugins
maven-resources-plugin
3.2.0
default-copy-resources
process-resources
copy-resources
${project.build.directory}/my-resources
src/main/my-resources
true
org.apache.maven.plugins
maven-compiler-plugin
3.8.1
6
6
该回答引用GPTᴼᴾᴱᴺᴬᴵ
在控制台和日志文件都没有输出日志信息的情况下,可以按照以下步骤来检查并解决问题: