ตัวอย่างการเขียน Spring-boot WebFlux Logging
pom.xml
...
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.5.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
...
lombox เป็น dependency ที่ใช้สำหรับ generate code จาก annotation ต่าง ๆ
เอกสาร https://projectlombok.org/
@SpringBootApplication
@ComponentScan(basePackages = {"com.pamarin"})
public class AppStarter {
public static void main(String[] args) {
SpringApplication.run(AppStarter.class, args);
}
}
@Slf4j
@RestController
public class HomeController {
@GetMapping({"", "/"})
public Mono<String> hello() {
log.debug("call hello method");
return Mono.just("Hello world.");
}
}
@Slf4j เป็นการใช้ annotation ของ lombox เพื่อ generate Log4J Code (logging)
ทำให้เราไม่ต้องเขียน new instance ของ log4j เอง
การทำงานของ lombox เป็นการ inject code at compile time
classpath:application.properties
logging.level.org.springframework=DEBUG
logging.level.com.pamarin=DEBUG
logging.file=/log/app.log
cd ไปที่ root ของ project จากนั้น
$ mvn clean install
$ mvn spring-boot:run
เปิด browser แล้วเข้า http://localhost:8080