質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

Q&A

解決済

1回答

3734閲覧

Logbackのローテートが出来ません。

a0841_1974

総合スコア29

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Spring Boot

Spring Bootは、Javaのフレームワークの一つ。Springプロジェクトが提供する様々なフレームワークを統合した、アプリケーションを高速で開発するために設計されたフレームワークです。

0グッド

1クリップ

投稿2018/03/10 12:31

いつもお世話になっております。
SpringBoot2のLogbackでログを日単位でローテートしたいのですが、
出来ません。
どのようにすれば、ローテートされるのでしょうか。

実施した事は、以下の通りです。
1.対象プロジェクトのSpringBootアプリケーションの実行
2.コマンドプロンプトを起動して、dateコマンドで日付を翌日に設定する。
3.ログファイルがローテートされているか確認。
※2の日付の設定は、3/11、3/12、3/13、3/14と4回ほど実施しております。

logback.xmlの設定内容は、
以下の通りです。

<?xml version="1.0" encoding="UTF-8"?> <configuration> <!-- ファイルの出力先を指定する事。 --> <property name="LOG_DIR" value="C:/logs" /> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <target>System.out</target> <encoder> <pattern>%d{yyyy/MM/dd HH:mm:ss.SSS} [%t] %highlight(%-5le) %cyan(%-40.40lo{36}) - %green(%msg) %n</pattern> </encoder> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>INFO</level> </filter> </appender> <appender name="FILE_A" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${LOG_DIR}\SystemOut.log</file>     <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- daily rollover --> <fileNamePattern>SystemOut_%d{yyyyMMdd}.log</fileNamePattern> <!-- keep 30 days worth of history --> <maxHistory>7</maxHistory> </rollingPolicy> <encoder> <pattern>%d{yyyy/MM/dd HH:mm:ss.SSS} [%t] %-5le %lo{36} [%file:%line] - %msg %n</pattern> </encoder> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>INFO</level> </filter> </appender> <appender name="FILE_B" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>C:\logs\SystemErr.log</file>     <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <!-- daily rollover --> <fileNamePattern>SystemErr_%d{yyyyMMdd}.log</fileNamePattern> <!-- keep 30 days worth of history --> <maxHistory>7</maxHistory> </rollingPolicy> <encoder> <pattern>%d{yyyy/MM/dd HH:mm:ss.SSS} [%t] %-5le %lo{36} [%file:%line] - %msg %n</pattern> </encoder> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>ERROR</level> </filter> </appender> <root level="DEBUG"> <appender-ref ref="STDOUT" /> <appender-ref ref="FILE_A" /> <appender-ref ref="FILE_B" /> </root> </configuration>

以上です。
よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/03/10 12:39

date コマンドをうったあとに ログ出力させてないだけじゃないのかしら
guest

回答1

0

自己解決

以下の2つの内容を実施しましたら、ローテートが実施されました。
1.fileNamePatternの内容を以下のように記述する。
(変更前)
<fileNamePattern>SystemOut_%d{yyyyMMdd}.log</fileNamePattern>
(変更後)
<fileNamePattern>${LOG_DIR}\SystemOut_%d{yyyyMMdd}.log</fileNamePattern>

2.dateコマンドを実施した後に、ログ出力をさせる処理を実施する。

投稿2018/03/10 13:16

a0841_1974

総合スコア29

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問