SpringBootでログを出力する
12809 ワード
SpringBootでログを実装します
SpringBootを使うとログも簡単に実装できます
1.構成
sample-logger
│ build.gradle
└─src
└─main
├─java
│ └─com
│ └─ccc
│ │ SamplePrj02LogApplication.java
│ │ ServletInitializer.java
│ ├─common
│ │ LogUtils.java
│ └─local
│ HeloController.java
└─resources
│ application.properties
│ logback.xml
├─static
└─templates
index.html
2.依存関係
build.gradle
dependencies {
compile('org.springframework.boot:spring-boot-starter-thymeleaf')
compile('org.springframework.boot:spring-boot-starter-web')
runtime('org.springframework.boot:spring-boot-devtools')
compileOnly('org.projectlombok:lombok')
providedRuntime('org.springframework.boot:spring-boot-starter-tomcat')
testCompile('org.springframework.boot:spring-boot-starter-test')
}
3.ログの設定ファイル
resorceの下にlogback.xmlを配置します
logback.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
<include resource="org/springframework/boot/logging/logback/console-appender.xml"/>
<timestamp key="LOG_DATE" datePattern="yyyyMMdd"/>
<property name="LOG_FILE" value="C:/springboot/log/HeloController.log" />
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoder>
<pattern>${FILE_LOG_PATTERN}</pattern>
</encoder>
<file>${LOG_FILE}</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_FILE}.%d{yyyyMMdd}</fileNamePattern>
<maxHistory>5</maxHistory>
</rollingPolicy>
</appender>
<root level="TRACE">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
</root>
</configuration>
fileNamePattern
ログファイル名の後ろに日付をつけてログをローテーションします。
maxHistory
5つのバックアップを作成するように設定します。
4.ログ出力クラス
ログ出力のユーティリティクラスを作成します。
LogUtils.java
package com.ccc.common;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class LogUtils {
protected final static Logger logger = LoggerFactory.getLogger(LogUtils.class);
public static void info(String msg) {
logger.info(msg);
}
public static void warn(String msg) {
logger.warn(msg);
}
public static void error(String msg) {
logger.error(msg);
}
public static void debug(String msg) {
logger.debug(msg);
}
public static void trace(String msg) {
logger.trace(msg);
}
}
5.Controller
Webアプリケーション実行時にログを出力します
HeloController.java
package com.ccc.local;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import com.ccc.common.LogUtils;
@Controller
public class HeloController {
@RequestMapping(value = "/", method = RequestMethod.GET)
public String index(Model model) {
model.addAttribute("message", "Hello Springboot");
LogUtils.trace("トレースログです");
LogUtils.debug("デバッグログです");
LogUtils.info("情報ログです");
LogUtils.warn("警告ログです");
LogUtils.error("エラーログです");
return "index";
}
}
6.HTML
ログを出力することが目的なのでViewはなんでもよい。HelloWorldを表示しています
index.html
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
<head>
<title>Hello</title>
<meta charset="utf-8" />
</head>
<body>
<h1>Springboot Hello Sample</h1>
<p>
<span th:text="${message}"></span>!!!
</p>
</body>
</html>
7.実行してログが出力されることを確認します
Springbootを実行して、URLにアクセスします
http://localhost:8080/
Author And Source
この問題について(SpringBootでログを出力する), 我々は、より多くの情報をここで見つけました https://qiita.com/t-iguchi/items/94c35818577580310e4b著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .