OSDN Git Service

Merge branch 'master' of senju@git.sourceforge.jp:/gitroot/rabbit-bts/RabbitBTS
authorsenju <senju@users.sourceforge.jp>
Tue, 25 Aug 2009 11:10:11 +0000 (20:10 +0900)
committersenju <senju@users.sourceforge.jp>
Tue, 25 Aug 2009 11:10:11 +0000 (20:10 +0900)
13 files changed:
.gitignore
build.xml
doc/deploy.txt [new file with mode: 0644]
jarlist
src/jp/sourceforge/rabbitBTS/Sht.java
src/jp/sourceforge/rabbitBTS/controllers/BbsController.java
src/jp/sourceforge/rabbitBTS/controllers/MembersController.java
src/jp/sourceforge/rabbitBTS/controllers/RegisterController.java
src/jp/sourceforge/rabbitBTS/interceptors/AuthenticationInterceptor.java
src/jp/sourceforge/rabbitBTS/interceptors/CSRFInterceptor.java
src/jp/sourceforge/rabbitBTS/interceptors/TraceInterceptor.java
src/jp/sourceforge/rabbitBTS/services/AccountService.java
war/WEB-INF/classes/logback.xml [new file with mode: 0644]

index 3422e0e..08f838f 100644 (file)
@@ -3,4 +3,5 @@
 *.bin
 *.tgz
 *.swp
+log.xml
 datastore-indexes-auto.xml
index 3b667f2..9c563fa 100644 (file)
--- a/build.xml
+++ b/build.xml
@@ -1,5 +1,5 @@
 <!-- vim:set et sw=2 sts=2 ts=2 fenc=utf-8: -->
-<project>
+<project default="compile">
   <property name="sdk.dir" location="../appengine-java-sdk-1.2.2" />
 
   <import file="${sdk.dir}/config/user/ant-macros.xml" />
     </fileset>
   </path>
 
+  <target name="init">
+    <delete>
+      <fileset dir=".">
+        <include name="**/*.swp" />
+      </fileset>
+    </delete>
+  </target>
+
   <target name="copyjars"
+      depends="init"
       description="Copies the App Engine JARs to the WAR.">
     <copy
         todir="war/WEB-INF/lib"
@@ -70,6 +79,7 @@
     <appcfg action="request_logs" war="war">
       <options>
         <arg value="--num_days=5"/>
+        <arg value="--severity=0"/>
       </options>
       <args>
         <arg value="logs.txt"/>
     </appcfg>
   </target>
 
+  <target name="clean">
+    <delete>
+      <fileset dir="war/WEB-INF/classes">
+        <include name="**/*.class" />
+      </fileset>
+    </delete>
+  </target>
+
 </project>
 
diff --git a/doc/deploy.txt b/doc/deploy.txt
new file mode 100644 (file)
index 0000000..a9f25bb
--- /dev/null
@@ -0,0 +1,4 @@
+logback/jul切り替え(ログレベル含む)
+freemarkerのキャッシュを切る
+トレースインターセプターを切る
+メッセージソースのリロード時間を切る
diff --git a/jarlist b/jarlist
index d1a7904..bb1af69 100644 (file)
--- a/jarlist
+++ b/jarlist
@@ -4,7 +4,6 @@ aspectjweaver.jar
 cglib-nodep-2.1_3.jar
 commons-collections-3.2.1.jar
 commons-lang-2.4.jar
-commons-logging.jar
 freemarker.jar
 jdo2-api-2.3-SNAPSHOT.jar
 jstl.jar
@@ -20,3 +19,7 @@ spring-tx.jar
 spring-web.jar
 spring-webmvc.jar
 standard.jar
+logback-classic-0.9.17.jar
+logback-core-0.9.17.jar
+slf4j-api-1.5.8.jar
+jcl-over-slf4j-1.5.8.jar
index 1f3548d..7911d98 100644 (file)
@@ -17,7 +17,8 @@
 
 package jp.sourceforge.rabbitBTS;
 
-import java.util.logging.Logger;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import javax.servlet.http.HttpServletRequest;
 
@@ -51,10 +52,10 @@ public final class Sht {
        
        @SuppressWarnings("unchecked")
        public static final Logger log(Class c){
-               return Logger.getLogger(c.getName());
+               return LoggerFactory.getLogger(c.getName());
        }
        
        public static final Logger log(Object o){
-               return Logger.getLogger(o.getClass().getName());
+               return LoggerFactory.getLogger(o.getClass().getName());
        }
 }
index 6d8580c..c22419f 100644 (file)
@@ -60,7 +60,7 @@ public final class BbsController extends BaseController {
 
                this.validator.validate(post, result);
                if (result.hasErrors()) {
-                       Sht.log(this).finest("BBS Post Validate fail.");
+                       Sht.log(this).trace("BBS Post Validate fail.");
                        return null;
                }
 
index af2d8e8..cea3194 100644 (file)
@@ -74,7 +74,7 @@ public class MembersController extends BaseController implements IController {
                }
 
                if (account == null) {
-                       Sht.log(this).warning("存在しないアカウントの削除が試行されました。");
+                       Sht.log(this).warn("存在しないアカウントの削除が試行されました。");
                }
 
                map.addAttribute("accForDel", account);
index 96aa2a1..60c09ed 100644 (file)
@@ -69,12 +69,12 @@ public final class RegisterController extends BaseController implements
                                ret = null;
                        } else {
                                // すでに登録済みの場合ホームへリダイレクト
-                               Sht.log(this).finer("既に登録済み");
+                               Sht.log(this).trace("既に登録済み");
                                ret = REDIRECT_HOME_HTML;
                        }
                } catch (final HasNotValidIdException e) {
                        // googleにログインしてない場合
-                       Sht.log(this).finer("ログインが必要");
+                       Sht.log(this).trace("ログインが必要");
                        ret = "redirect:" + Sht.loginUrl(req);
                }
                return ret;
@@ -112,7 +112,7 @@ public final class RegisterController extends BaseController implements
                account.setEmail(Sht.user().getEmail());
                this.validator.validate(account, result);
                if (result.hasErrors()) {
-                       Sht.log(this).finer("ユーザ登録画面にてバリデートに失敗");
+                       Sht.log(this).trace("ユーザ登録画面にてバリデートに失敗");
                        return null;
                }
 
@@ -121,13 +121,13 @@ public final class RegisterController extends BaseController implements
                        if (this.accountService.getAccountByNickName(account
                                        .getNickName()) != null) {
                                result.rejectValue("nickName", "Account.nickName[duplicate]");
-                               Sht.log(this).finer("nickName重複チェックエラー");
+                               Sht.log(this).trace("nickName重複チェックエラー");
                                return null;
                        }
 
                        this.accountService.registAccount(account);
                } catch (final RabbitBTSException e) {
-                       Sht.log(this).log(Level.WARNING, "ユーザー登録で例外発生", e);
+                       Sht.log(this).warn("ユーザー登録で例外発生", e);
                        // TODO:resultにセット
                        map.addAttribute("errorMessage", "登録に失敗しました。再度やりなおしてください。");
                        return null;
index 4e6b38d..886792e 100644 (file)
@@ -56,8 +56,8 @@ public class AuthenticationInterceptor extends HandlerInterceptorAdapter {
                        }
                        // アカウント未登録の場合、登録ページにリダイレクトする。
                        response.sendRedirect("/register/");
-                       Sht.log(this).warning(
-                                       "403(not registerd.) " + request.getRequestURL());
+                       Sht.log(this).warn(
+                                       "403(not registerd.) {}", request.getRequestURL());
                        return false;
                } catch (final HasNotValidIdException e) {
                        if (handler instanceof IPublicController) {
@@ -67,7 +67,7 @@ public class AuthenticationInterceptor extends HandlerInterceptorAdapter {
 
                        // ログインしていない場合、ログインページにリダイレクトする。
                        response.sendRedirect(Sht.loginUrl(request));
-                       Sht.log(this).warning("403 " + request.getRequestURL());
+                       Sht.log(this).warn("403 {}", request.getRequestURL());
                        return false;
                }
        }
index 42add8f..5b72af1 100644 (file)
@@ -54,7 +54,7 @@ public class CSRFInterceptor extends HandlerInterceptorAdapter {
                                c.setCsrfSafe(true);
                        } else {
                                c.setCsrfSafe(false);
-                               Sht.log(this).warning("CSRF detected.");
+                               Sht.log(this).warn("CSRF detected.");
                        }
                }
                return true;
@@ -81,7 +81,7 @@ public class CSRFInterceptor extends HandlerInterceptorAdapter {
                        // きちんとCSRFチェックが行われているかチェックする
                        final IController c = (IController) handler;
                        if (!c.isCsrfChecked()) {
-                               Sht.log(this).severe("CSRFチェックを行っていないPOST");
+                               Sht.log(this).error("CSRFチェックを行っていないPOST");
                        }
                        assert c.isCsrfChecked() : "CSRFチェックを行っていないPOST";
                }
index 7167d2e..4851d71 100644 (file)
@@ -31,13 +31,13 @@ public class TraceInterceptor extends HandlerInterceptorAdapter {
        public void postHandle(HttpServletRequest request,
                        HttpServletResponse response, Object handler,
                        ModelAndView modelAndView) throws Exception {
-               Sht.log(this).finest("postHandle " + makeURL(request));
+               Sht.log(this).trace("postHandle {}", makeURL(request));
        }
 
        @Override
        public boolean preHandle(HttpServletRequest request,
                        HttpServletResponse response, Object handler) throws Exception {
-               Sht.log(this).finest("preHandle " + makeURL(request));
+               Sht.log(this).trace("preHandle {}", makeURL(request));
                return true;
        }
 
index 7781c90..5f3ee46 100644 (file)
@@ -106,14 +106,14 @@ public class AccountService {
                // 最初のスーパーユーザーかチェック
                if (account.getEmail().equals(this.firstSuperUser)) {
                        account.setAdmin(true);
-                       Sht.log(this).warning(
-                                       "Admin Account Created. " + this.firstSuperUser);
+                       Sht.log(this).warn(
+                                       "Admin Account Created. {}", this.firstSuperUser);
                }
 
                // nickName重複チェック
                if (this.accountDao.findAccountByNickName(account.getNickName()) != null) {
                        Sht.log(this).info(
-                                       "nickName " + account.getNickName() + " is already used.");
+                                       "nickName {} is already used.", account.getNickName());
                        throw new RabbitBTSException("nickNameが重複しています。");
                }
 
diff --git a/war/WEB-INF/classes/logback.xml b/war/WEB-INF/classes/logback.xml
new file mode 100644 (file)
index 0000000..5736155
--- /dev/null
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!-- vim:set ts=2 sts=2 sw=2 et fenc=utf-8 -->
+<configuration scan="true" scanPeriod="3 seconds">
+  <appender name="STDOUT"
+    class="ch.qos.logback.core.ConsoleAppender">
+    <layout class="ch.qos.logback.classic.PatternLayout">
+      <Pattern>
+                 %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg %ex %n
+     </Pattern>
+    </layout>
+  </appender>
+<appender name="FILE" class="ch.qos.logback.core.FileAppender">
+    <File>log.xml</File>
+    <layout class="ch.qos.logback.classic.log4j.XMLLayout">
+      <LocationInfo>true</LocationInfo>
+    </layout>
+  </appender> 
+
+  <logger name="jp.sourceforge.rabbitBTS" level="TRACE" />
+  <logger name="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver" level="OFF" />
+  <root level="INFO">
+    <appender-ref ref="STDOUT" />
+       <appender-ref ref="FILE" />
+  </root>
+
+</configuration>