001 /*
002 * Copyright (c) 2009 The openGion Project.
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
013 * either express or implied. See the License for the specific language
014 * governing permissions and limitations under the License.
015 */
016 package org.opengion.fukurou.util;
017
018 // import java.text.DateFormat;
019 // import java.text.SimpleDateFormat;
020 // import java.util.Date;
021 // import java.util.Locale;
022
023 /**
024 * Logを書ãè¾¼ã‚?‚ºã® LogWriter を呼ã³å‡ºã?簡易クラスã§ã™ã?
025 *
026 * Log ã®æ›¸ãè¾¼ã¿æ—¥æ™‚ã‚„?Œã‚ー(è˜åˆ¥ID)ãªã©ã‚’å?力ã—ã¾ã™ã?
027 *
028 * @og.group エラー処ç?
029 *
030 * @version 4.0
031 * @author Kazuhiko Hasegawa
032 * @since JDK5.0,
033 */
034 public final class LogSender {
035
036 /** Log出力レベル FATAL {@value} */
037 public static final int FATAL = 4;
038 /** Log出力レベル ERROR {@value} */
039 public static final int ERROR = 3;
040 /** Log出力レベル WARNING {@value} */
041 public static final int WARNING = 2;
042 /** Log出力レベル INFORMATION {@value} */
043 public static final int INFORMATION = 1;
044 /** Log出力レベル DEBUG {@value} */
045 public static final int DEBUG = 0;
046
047 private static final int LOG_LEVEL = ERROR; // åˆæœŸå€¤
048
049 private final String userId;
050 private final int logLevel;
051 private String guiId = null;
052 private String msgId = null;
053 private StringBuilder buf = null;
054
055 /** シスãƒ?ƒ ä¾å˜ã?改行記å·ã‚’ã‚»ãƒ?ƒˆã—ã¾ã™ã? */
056 private static final String CR = System.getProperty("line.separator");
057
058 /**
059 * ãƒ?ƒ•ォルトコンストラクター
060 *
061 */
062 public LogSender() {
063 this( null,LOG_LEVEL );
064 }
065
066 /**
067 * ユーザーIDを与ãˆã¦ã®ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ãƒ¼
068 * ユーザーIDã¯?ŒLogã®è˜åˆ¥IDã¨ã—ã¦ä½¿ç”¨ã—ã¾ã™ã?
069 *
070 * @param userId ユーザーID
071 */
072 public LogSender( final String userId ) {
073 this( userId,LOG_LEVEL );
074 }
075
076 /**
077 * ユーザーIDã¨ã€ãƒã‚°ãƒ¬ãƒ™ãƒ«ã‚’与ãˆã¦ã®ã‚³ãƒ³ã‚¹ãƒˆãƒ©ã‚¯ã‚¿ãƒ¼
078 * ユーザーIDã¯?ŒLogã®è˜åˆ¥IDã¨ã—ã¦ä½¿ç”¨ã—ã¾ã™ã?
079 * ãƒã‚°ãƒ¬ãƒ™ãƒ«ã¯?? ??4 ã®æ•°å—ã§ã€å¤§ãããªã‚‹ã»ã©ã€å?力æ¡ä»¶ã¯ãã¤ããªã‚Šã¾ã™ã?
080 * 0:DEBUG, 1:INFORMATION, 2:WARNING, 3:ERROR, 4:FATAL
081 * åˆæœŸå€¤ã¯ã€?:ERROR ã§ã™ã?
082 *
083 * @param userId ユーザーID
084 * @param logLbl ãƒã‚°ãƒ¬ãƒ™ãƒ«(0 ??4 ã®æ•°å?
085 */
086 public LogSender( final String userId,final int logLbl ) {
087 this.userId = userId;
088 logLevel = logLbl;
089 // buf = new StringBuilder( HybsSystem.BUFFER_MIDDLE );
090 buf = new StringBuilder( 200 ); // 4.1.0.1 (2008/01/23)
091
092 if( logLevel < DEBUG || logLevel > FATAL ) {
093 String errMsg = "ãƒã‚°ãƒ¬ãƒ™ãƒ«ã®æŒ?®šãƒ¬ãƒ™ãƒ«ãŒã?é–“é•ã£ã¦ã?¾ã™ã?"
094 + "æŒ?®šãƒ¬ãƒ™ãƒ«=[" + logLbl + "]"
095 + " æŒ?®šå¯èƒ½ãƒ¬ãƒ™ãƒ«="
096 + DEBUG + " ??" + FATAL ;
097 // throw new HybsSystemException( errMsg );
098 throw new RuntimeException( errMsg );
099 }
100 }
101
102 /**
103 * ç”»é¢IDã‚’è¨å®šã—ã¾ã™ã?
104 * ãƒã‚°é›?¨ˆæ™‚ã®å‚è?æƒ??ã«ä½¿ã?¾ã™ã?
105 *
106 * @param guiId ç”»é¢ID
107 */
108 public void setGuiId( final String guiId ) {
109 this.guiId = guiId;
110 }
111
112 /**
113 * メãƒ?‚»ãƒ¼ã‚¸IDã‚’è¨å®šã—ã¾ã™ã?
114 * ãƒã‚°é›?¨ˆæ™‚ã®å‚è?æƒ??ã«ä½¿ã?¾ã™ã?
115 *
116 * @param msgId メãƒ?‚»ãƒ¼ã‚¸ID
117 */
118 public void setMsgId( final String msgId ) {
119 this.msgId = msgId;
120 }
121
122 /**
123 * Logレベルをå–å¾—ã—ã¾ã™ã?
124 * ãƒã‚°ãƒ¬ãƒ™ãƒ«ã¯, FATAL,ERROR,WARNING,INFORMATION,DEBUG ã‹ã‚‰é¸ã¹ã¾ã™ã?
125 *
126 * @return Logレベル
127 */
128 public int getLogLevel() {
129 return logLevel;
130 }
131
132 /**
133 * Logã‚’LogWriter ã«æ¸¡ã—ã¾ã™ã?
134 * DEBUG ãƒã‚°ãƒ¬ãƒ™ãƒ«ã¨?Œã‚らã‹ã˜ã‚è¨å®šã•れã¦ã?‚‹Logレベルã‚?
135 * 比è¼?—ã¦, ãƒã‚°ãƒ¬ãƒ™ãƒ«ãŒå°ã•ã??åˆã?,出力ã—ã¾ã›ã‚“ã€?
136 *
137 * @param message メãƒ?‚»ãƒ¼ã‚¸
138 */
139 public void debug( final String message ) {
140 if( DEBUG < logLevel ) { return; }
141 log( "DEBUG",message ) ;
142 }
143
144 /**
145 * Logã‚’LogWriter ã«æ¸¡ã—ã¾ã™ã?
146 * INFORMATION ãƒã‚°ãƒ¬ãƒ™ãƒ«ã¨?Œã‚らã‹ã˜ã‚è¨å®šã•れã¦ã?‚‹Logレベルã‚?
147 * 比è¼?—ã¦, ãƒã‚°ãƒ¬ãƒ™ãƒ«ãŒå°ã•ã??åˆã?,出力ã—ã¾ã›ã‚“ã€?
148 *
149 * @param message メãƒ?‚»ãƒ¼ã‚¸
150 */
151 public void info( final String message ) {
152 if( INFORMATION < logLevel ) { return; }
153 log( "INFO",message ) ;
154 }
155
156 /**
157 * Logã‚’LogWriter ã«æ¸¡ã—ã¾ã™ã?
158 * WARNING ãƒã‚°ãƒ¬ãƒ™ãƒ«ã¨?Œã‚らã‹ã˜ã‚è¨å®šã•れã¦ã?‚‹Logレベルã‚?
159 * 比è¼?—ã¦, ãƒã‚°ãƒ¬ãƒ™ãƒ«ãŒå°ã•ã??åˆã?,出力ã—ã¾ã›ã‚“ã€?
160 *
161 * @param message メãƒ?‚»ãƒ¼ã‚¸
162 */
163 public void warn( final String message ) {
164 if( WARNING < logLevel ) { return; }
165 log( "WARNING",message ) ;
166 }
167
168 /**
169 * Logã‚’LogWriter ã«æ¸¡ã—ã¾ã™ã?
170 * ERROR ãƒã‚°ãƒ¬ãƒ™ãƒ«ã¨?Œã‚らã‹ã˜ã‚è¨å®šã•れã¦ã?‚‹Logレベルã‚?
171 * 比è¼?—ã¦, ãƒã‚°ãƒ¬ãƒ™ãƒ«ãŒå°ã•ã??åˆã?,出力ã—ã¾ã›ã‚“ã€?
172 *
173 * @param message メãƒ?‚»ãƒ¼ã‚¸
174 */
175 public void error( final String message ) {
176 if( ERROR < logLevel ) { return; }
177 log( "ERROR",message ) ;
178 }
179
180 /**
181 * Logã‚’LogWriter ã«æ¸¡ã—ã¾ã™ã?
182 * FATAL ãƒã‚°ãƒ¬ãƒ™ãƒ«ã¨?Œã‚らã‹ã˜ã‚è¨å®šã•れã¦ã?‚‹Logレベルã‚?
183 * 比è¼?—ã¦, ãƒã‚°ãƒ¬ãƒ™ãƒ«ãŒå°ã•ã??åˆã?,出力ã—ã¾ã›ã‚“ã€?
184 *
185 * @param message メãƒ?‚»ãƒ¼ã‚¸
186 */
187 public void fatal( final String message ) {
188 if( FATAL < logLevel ) { return; }
189 log( "FATAL",message ) ;
190 }
191
192 /**
193 * Logã‚’LogWriter ã«æ¸¡ã—ã¾ã™ã?
194 * ãŸã ã—,引数ã§ã‚»ãƒ?ƒˆã—ãŸLoglevelã¨?Œã‚らã‹ã˜ã‚è¨å®šã•れã¦ã?‚‹Logレベルã‚?
195 * 比è¼?—ã¦, 引数ã®Loglebelã®æ–¹ãŒå°ã•ã??åˆã?,出力ã—ã¾ã›ã‚“ã€?
196 * ãƒã‚°ãƒ¬ãƒ™ãƒ«ã¯, FATAL,ERROR,WARNING,INFORMATION,DEBUG ã‹ã‚‰é¸ã¹ã¾ã™ã?
197 *
198 * @og.rev 3.5.5.4 (2004/04/15) ãƒã‚°ã«ã‚¨ãƒ©ãƒ¼ãƒ¬ãƒ™ãƒ«ã‚’記述ã—ã¾ã™ã?
199 * @og.rev 5.5.7.2 (2012/10/09) HybsDateUtil を利用ã™ã‚‹ã‚ˆã†ã«ä¿®æ£ã—ã¾ã™ã?
200 *
201 * @param level ãƒã‚°ãƒ¬ãƒ™ãƒ«(FATAL,ERROR,WARNING,INFORMATION,DEBUG)
202 * @param message メãƒ?‚»ãƒ¼ã‚¸
203 */
204 private void log( final String level ,final String message ) {
205 buf.append( "[" );
206 buf.append( level );
207 // buf.append( " : Time=" ).append( HybsSystem.getDate() );
208 // DateFormat formatter = new SimpleDateFormat( "yyyy/MM/dd HH:mm:ss.SSS",Locale.JAPAN );
209 // buf.append( " : Time=" ).append( formatter.format( new Date() ) ); // 4.1.0.1 (2008/01/23)
210 buf.append( " : Time=" ).append( HybsDateUtil.getDate( "yyyy/MM/dd HH:mm:ss.SSS" ) ); // 5.5.7.2 (2012/10/09) HybsDateUtil を利用
211 buf.append( " , User=" ).append( userId );
212 buf.append( " , Gui=" ).append( guiId );
213 buf.append( " , Msg=" ).append( msgId );
214 buf.append( "]");
215 buf.append( CR );
216 buf.append( message );
217 }
218
219 /**
220 * LogWriter ã‚’æ?示çš?«close() ã—ã¾ã™ã?
221 * LogWriter ã¯?Œå?部çš?« ã‚ャãƒ?‚·ãƒ¥ã‚’æŒã£ã¦ãŠã‚Š,åˆã‚ã¦ã‚¢ã‚¯ã‚»ã‚¹ã•れãŸå?åˆã«
222 * ã™ã§ã«ã‚ªãƒ–ジェクトãŒå˜åœ¨ã—ã¦ã?‚Œã°,ãれを使ã?ç„¡ã‘れ㰠新ãŸã«è¿½åŠ?ƒ¢ãƒ¼ãƒ‰ã§
223 * PrintWriter を作æ?ã—ã¾ã™ã?
224 * よã£ã¦?Œæ?示çš?«close()ã™ã‚‹å¿?¦æ?㯠ã»ã¨ã‚“ã©æœ‰ã‚Šã¾ã›ã‚“ã€?
225 *
226 */
227 public void flush() {
228 LogWriter.log( buf.toString() );
229 }
230
231 /**
232 * LogWriter ã‚’æ?示çš?«close() ã—ã¾ã™ã?
233 * LogWriter ã¯?Œå?部çš?« ã‚ャãƒ?‚·ãƒ¥ã‚’æŒã£ã¦ãŠã‚Š,åˆã‚ã¦ã‚¢ã‚¯ã‚»ã‚¹ã•れãŸå?åˆã«
234 * ã™ã§ã«ã‚ªãƒ–ジェクトãŒå˜åœ¨ã—ã¦ã?‚Œã°,ãれを使ã?ç„¡ã‘れ㰠新ãŸã«è¿½åŠ?ƒ¢ãƒ¼ãƒ‰ã§
235 * PrintWriter を作æ?ã—ã¾ã™ã?
236 * よã£ã¦?Œæ?示çš?«close()ã™ã‚‹å¿?¦æ?㯠ã»ã¨ã‚“ã©æœ‰ã‚Šã¾ã›ã‚“ã€?
237 *
238 */
239 public void close() {
240 LogWriter.close();
241 }
242 }