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 }