java.util.loggingをつかってみる。
java
1import java.io.OutputStream;
2import java.nio.file.Files;
3import java.nio.file.Path;
4import java.nio.file.Paths;
5import java.nio.file.StandardOpenOption;
6import java.time.LocalDateTime;
7import java.util.logging.*;
8
9public class HogeLog {
10 public static void main(String[] args) throws Exception {
11
12 final Logger logger = Logger.getLogger(Logger.GLOBAL_LOGGER_NAME);
13 logger.setLevel(Level.FINEST);
14
15 final Path logFilePath = Paths.get("./xx-log.txt");
16 final OutputStream os =
17 Files.newOutputStream(logFilePath,
18 StandardOpenOption.CREATE, StandardOpenOption.APPEND);
19 final Handler handler = new StreamHandler(os, new SimpleFormatter());
20 handler.setLevel(Level.FINEST);
21 logger.addHandler(handler);
22
23 logger.log(Level.FINEST, LocalDateTime.now().toString());
24 logger.log(Level.FINER, LocalDateTime.now().toString());
25 logger.log(Level.FINE, LocalDateTime.now().toString());
26 logger.log(Level.CONFIG, LocalDateTime.now().toString());
27 logger.log(Level.INFO, LocalDateTime.now().toString());
28 logger.log(Level.WARNING, LocalDateTime.now().toString());
29 logger.log(Level.SEVERE, LocalDateTime.now().toString());
30 logger.log(Level.ALL, LocalDateTime.now().toString());
31 }
32}
実際に運用をはじめると、ログのサイズがでかくなったらどうするか、ファイルサイズで切り替えるのか日毎に切り替えるのか、いつまで保存するのか、保存するときは圧縮するのか、出力するログのレベルはどうするか、フォーマットはどうするか、などなど、考慮すべき点はわんさかと出てきます。そうなったときは、m.ts10806さんが書かれたように、log4jとかを採用するのがいいかもしれません。
「初心者」という自己紹介でしたのでjdk提供の範囲でできることを提示してみました。