macでmavenプロジェクトでlog4jを使用しています。ログのファイル名に日付を設定しようとしているのですがうまくできません。htmlファイルから以下のサーブレットを呼び出した時にログに出力をする仕様です。
xml
1 2<?xml version="1.0" encoding="UTF-8"?> 3<!DOCTYPE configuration> 4 5<configuration status="OFF"> 6 7<Properties> 8 <Property name="error_daily_log">logs/app_error_%d{yyyy-MM-dd HH:mm:ss.SSS}</Property> 9</Properties> 10 <Appenders> 11 <Console name="Console" target="SYSTEM_OUT"> 12 <PatternLayout pattern="%d{DEFAULT} | [%t] | %-5level | %c{36} | %msg%n"/> 13 </Console> 14 <File name="File" fileName="logs/normal_app.log"> 15 <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} | [%t] | %-5level | %c{36} | %msg%n"/> 16 </File> 17 <RollingFile name="RollingFile" fileName="logs/app.log" filePattern="logs/app_%date{yyyyMMdddHHmmSS}.log"> 18 <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} | [%t] | %-5level | %c{36} | %msg%n"/> 19 <Policies> 20 <TimeBasedTriggeringPolicy /> 21 </Policies> 22 </RollingFile> 23 </Appenders> 24 <Loggers> 25 <Root level="error"> 26 <AppenderRef ref="File" /> 27 <AppenderRef ref="RollingFile" /> 28 </Root> 29 <Logger name="test" level="trace" additivity="false"> 30 <AppenderRef ref="Console"/> 31 <AppenderRef ref="File" /> 32 <AppenderRef ref="RollingFile" /> 33 </Logger> 34 </Loggers> 35</configuration> 36
java
1 2package resistration.servlet; 3 4import java.io.IOException; 5import java.io.PrintWriter; 6import java.util.logging.Logger; 7 8import javax.servlet.ServletException; 9import javax.servlet.http.HttpServlet; 10import javax.servlet.http.HttpServletRequest; 11import javax.servlet.http.HttpServletResponse; 12 13import org.apache.logging.log4j.LogManager; 14/** 15 * Servlet implementation class ResistrationServlet 16 */ 17public class ResistrationServlet extends HttpServlet { 18 private static final long serialVersionUID = 1L; 19 static org.apache.logging.log4j.Logger logger = LogManager.getLogger(Logger.class.getName()); 20 21 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 22 doPost(request, response); 23 } 24 25 /** 26 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 27 */ 28 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 29 String param = request.getParameter("process_status"); 30 31 logger.debug("ログ出力テストです"); 32 33 34 35 response.setContentType("text/html;charset=UTF-8"); 36 PrintWriter out = response.getWriter(); 37 out.println("<html>"); 38 out.println("<head>"); 39 out.println("<title>HELLO!!サーブレットの世界にようこそ</title>"); 40 // 日本語のメッセージを表示したい 41 out.println("</head>"); 42 out.println("<body>"); 43 out.println("HELLO!!サーブレットの世界にようこそ"); 44 out.println(param); 45 out.println("</body>"); 46 out.println("</html>"); 47 out.close(); 48 } 49 50} 51
実施後に確認したところ以下のようにログが出力されました。
bin user$
bin user$ ls -la /Applications/Eclipse_4.6.2.app/Contents/MacOS/logs/
total 0
drwxr-xr-x 3 user admin 102 3 20 21:38 .
drwxr-xr-x@ 7 user admin 238 3 20 21:36 ..
-rw-r--r-- 1 user admin 0 3 20 21:36 app.log
bin user$
問題点1:ログのファイル名に日付が設定されない
問題点2:ログファイルは出力されるがログが書き込まれない
log4j2.xmlの設定に詳しい方、お力をお貸しいただけないでしょうか?

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/03/22 16:10 編集
2017/03/23 00:54 編集
2017/03/25 13:56