八月 29, 2007
最近使用 svk ,突然想到,能不能把 svk 做出來的資料,放在 subversion 的伺服器上,結果在網路上找到這一篇文章:
How to mirror a SVK repository onto an SVN repository
之前使用過 subversion 做為自己個人使用的版本控制系統,那時候手上有一台 Linux 作業系統的機器,就把那一台機器當作是 subversion server,一些資料就直接放在上面,後來那台機器重灌之後,就沒有在繼續用 subversion了。
之前使用 subversion 的經驗是,每一個目錄下都會多出一個 .svn 的子資料夾,這個是 subversion 用來記錄一些檔案的修改記錄的資料夾,但是每一個目錄都出現,看起來就有一點讓人覺得不舒服…
最近接觸到 svk 使用上還有觀念大致上看 subversion 相同,因為 svk 是建構在 subversion 上的一套版本控制系統。最大的特色就是 checkout 出來的檔案下,不會每一個目錄都有 .svn 的子目錄存在了,而且可以將 server 上的 subversion tree 整個抓下來,放在自己的電腦上,適合有 notebook 時,可以離線修改檔案,等到有網路連線時,再把資料回傳回伺服器上。
張貼留言 » |
軟體 |
固定網址
張貼由 GD
八月 29, 2007
在 vimrc 檔案中,可以透過下列命令指定哪些副檔名要套用什麼樣的縮排設定:
autocmd BufRead *.rb set ai et sw=2 ts=2 softtabstop=2
autocmd BufRead *.py set ai et sw=4 ts=4 softtabstop=4
上面是設定 *.rb 的檔案,使用 autoindent, 縮排為 2, 用space取代 tab, tabstop=2
張貼留言 » |
軟體 |
固定網址
張貼由 GD
八月 24, 2007
想要在 tomcat 中把 log4j 用在自己的程式中,用下列的安裝方式:
1.下載 log4j, 把 log4j.jar 放在自己專案的 WEB-INF/lib 目錄中
2.寫一個 log4j.properties 放在 WEB-INF/classes 中,參考內容如下:
log4j.rootLogger=debug, R
#log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.MaxFileSize=512KB
log4j.appender.R.MaxBackupIndex=3
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
log4j.appender.R.File=C:/logs/log.txt
log4j.appender.R.File 是log 檔的路徑和檔名
可以參考 Short introduction to log4j 中的方式,寫一個 servlet 程式,用來載入 log4j.properties 設定好 log4j 的參數:
import org.apache.log4j.PropertyConfigurator;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.PrintWriter;
import java.io.IOException;
public class Log4jInit extends HttpServlet {
public
void init() {
String prefix = getServletContext().getRealPath("/");
String file = getInitParameter("log4j-init-file");
// if the log4j-init-file is not set, then no point in trying
if(file != null) {
PropertyConfigurator.configure(prefix+file);
}
}
public
void doGet(HttpServletRequest req, HttpServletResponse res) {
}
}
另外在 web.xml 中加上 servlet 的 tag
<servlet>
<servlet-name>log4j-init</servlet-name>
<servlet-class>Log4jInit</servlet-class>
<init-param>
<param-name>log4j-init-file</param-name>
<param-value>WEB-INF/classes/log4j.properties</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
張貼留言 » |
JAVA, Web, CSS |
固定網址
張貼由 GD
八月 24, 2007
程式 debug 的時候,還是 stack trace 的 output 最有用了~~
昨天在 debug 一支 jsp 的程式,弄了很久,發現錯誤是 java 的 NullPointerException 但是又因為那個程式的 System.out.println() 沒辦法顯示在伺服器的畫面上,搞了半天,還是找不到是程式的哪一行出錯,要是可以印出 stack trace 就可以馬上知道是程式的哪一行錯誤了…
今天找了一下相關的資料,發現可以配合 log4j 來輸出 stack trace,用:
try {
.....
} catch(Exception ex) {
logger.debug("Exception", ex)
}
再設定好 log4j.properties 檔案,輸出資料到另一個文字 log 檔中,就可以方便的進行 debug。
另外,也可以另外寫一個 ExceptionUtil 來把 stack trace 的輸出轉成一個文字字串,方便進行處理。
public class ExceptionUtil {
public static String getStackTrace(Throwable t) {
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
t.printStackTrace(pw);
pw.flush();
return sw.toString();
}
}
參考的資料:
Logging stack trace in log4j
Short introduction to log4j
張貼留言 » |
JAVA, Web, CSS |
固定網址
張貼由 GD
八月 24, 2007
在我自己常使用的伺服器上,我個人的命令提示符號會經由更改原本的設定檔,加上顏色,方便在畫面上辨識,看起來也比較好看(這是我自己覺得的啦!)
有時候會發現在使用的時候,如果打的是很長的命令,會有換行不正常的情況,例如:
root@localhoat> dddddddddddddddddddddddddddddddd
若繼續打字下去,會變成:
dddddddddddat> dddddddddddddddddddddddddddddddd
可以注意到的是,第一行最前方的提示字元被蓋住了,而且也沒有正常的換行,正常的應該是:
root@localhoat> dddddddddddddddddddddddddddddddd
ddddddddddd
我在網路上找到了The Non-Annoying Terminal Mini How-To & Fun with shopt 這篇文章,提到 bash 的 line-wrap 問題,可以使用
shopt -s checkwinsize
打開 checkwinsize 的功能,但是我試了之後,發現我的是同一篇文章中後半段網友提到的,是由於設定 PS1 變數所產生的問題。
在使用 escape 字元設定提示符號的顯示顏色時,要在色碼的前後加上 \[ \] 才不會導致 bash 計算視窗寬度產生錯誤,進而發生換行錯誤。
在修改了我自己的PS1設定檔案之後,我的換行問題就解決了。
張貼留言 » |
Linux |
固定網址
張貼由 GD