posts - 31,  comments - 31,  trackbacks - 0
                 這幾天做項目,需要做一個類似于控制臺的界面,可以將日志回顯到一個文本區域里,幾經查找,反復測試寫了以下測試代碼。
          這是log4j.properties的配置內容
              log4j.rootCategory= ,WriterAppender

          log4j.appender.WriterAppender
          =org.apache.log4j.WriterAppender
          log4j.appender.WriterAppender.Threshold
          =debug
          log4j.appender.WriterAppender.layout
          =org.apache.log4j.PatternLayout
          log4j.appender.WriterAppender.layout.ConversionPattern
          =%d{ISO8601} - %- %m%n
          主程序
          import java.io.PipedReader;
          import java.io.PipedWriter;
          import java.io.Writer;

          import org.apache.log4j.Appender;
          import org.apache.log4j.Logger;
          import org.apache.log4j.WriterAppender;

          public class Log4jMain {
              
          static public Logger logger = Logger.getLogger(Log4jMain.class);

              
          public static void main(String[] arg) {
                  
                  
                  Logger root 
          = Logger.getRootLogger();
                  
          try {
                      Appender appender 
          = root.getAppender("WriterAppender");
                      PipedReader reader 
          = new PipedReader();
                      Writer writer 
          = new PipedWriter( reader) ;
                  
                      ((WriterAppender) appender).setWriter(writer);
                      
                      Thread t 
          = new AaaThread(reader);
                      t.start();
                      Logger logger 
          = Logger.getLogger(Log4jMain.class);
                      logger.error(
          "asdf");
                      logger.info(
          "asdf");
                      logger.debug(
          "asdf");
                      logger.fatal(
          "asdf");
                          //hh是一個class,test方法里只有幾個logger.info("aaa"),用于測試用,這東西可以去掉
                      
          new HH().test();

                  }
           catch (Exception e) {
                  }


              }

              
          }
          因為log4j提供的是 Writer,所以通過使用PipedWriter連接到PipedReader,并通過一個thread來處理PipedReader的數據就可以回顯了。如果你需要的話可以將下面的System.out.println(scanner.nextLine());改成你需要顯示的地方就行了。
          import java.io.PipedReader;
          import java.util.Scanner;

          public class AaaThread extends Thread {
              PipedReader reader;

              
          public AaaThread(PipedReader reader) {
                  
          this.reader = reader;
              }


              
          public void run() {
                  Scanner scanner 
          = new Scanner(reader);
                  
          while (scanner.hasNext()) {
                      System.out.println(scanner.nextLine());
                  }

              }

          }
          posted @ 2008-06-06 09:31 小平 閱讀(1224) | 評論 (0)編輯 收藏
          這里制作一個引子,具體內容比較多,而且hibernate文檔里的hql篇寫的很詳細
          可以這么用:
          List list = getHibernateTemplate().find("select new map(t1.c1,t2.c3) from table1 t1 ,table2 t2 where t1.c1=t2.c2");
          這樣的話list里的每個元素都是一個map,每個map里包含兩個元素
          注意:這里的table1和table2都是class名并不是真的表名,畢竟這是hql。除了可以用map還還支持list和自定義的bean。


          posted @ 2008-04-17 17:05 小平 閱讀(1895) | 評論 (0)編輯 收藏
          DB2的Type-4驅動真的很詭異,配了兩天沒配上,發現是多引了一個包。就是他----“db2java.zip(db2java.jar)”只要有了他就算你已經引入了db2jcc.jar、db2jcc_license_cisuz.jar、db2jcc_license_cu.jar也沒用。
          不知道怎么回事,本以為多引就沒錯,沒想到載這了。
          順便吧db2 type-4的配置方法貼下面:
          jdbc:db2://ip:port/數據庫
          驅動名:com.ibm.db2.jcc.DB2Driver

          我日他IBM!該死的IBM,我算是服了,配好的type-4驅動中文數據顯示的全是亂碼,準備切到type-2上試試,結構還是不行,查來查去是數據庫pagecode的事,數據庫的字符集改成gbk,客戶端的pagecode也改成跟數據庫一樣的,ODBC算是能用了,type-2也能用了,然后又用type-4一試!連不上了!說字符集不匹配,上網一查說要使用IBM專用的JDK,我日了,換了IBM的JDK,配好環境變量eclipse又不能用了!我算是被IBM搞死了,一氣之下也不準備再嘗試type-4了。
          我這里用的IBM JDK1.4,db2 V8
          posted @ 2008-04-17 16:51 小平 閱讀(2532) | 評論 (3)編輯 收藏

          近日抽風,想了解以下java與串口并口通訊的問題,上網查了半天,找到了sun幾年前的一個破包,comm.jar

          2.0版的,遇到一個比較奇怪的問題,這個包里的demo程序用cmd可以運行,但是用eclipse編譯就不能運行,一直以為是dll庫和配置文件的問題,幾乎將兩個文件copy到了系統中全部可能出現的地方都沒有解決。百般無奈之下,找到了http://blog.csdn.net/djsl6071/archive/2007/04/25/1583979.aspx這個博客,下載了rxtx把問題搞定了。
          posted @ 2008-04-17 16:40 小平 閱讀(576) | 評論 (0)編輯 收藏
          如果RMI客戶端鏈接補上服務器可能是以下情況導致的:
          1、網絡不通
          2、端口占用
          3、防火墻(客戶端機器的防火墻和服務器端的防火墻都有可能)
          4、服務器端所在機器安裝了linux虛擬機,或者使用的linux或者unix系統
          排除辦法:
          前三種情況都很好解決,主要是最后一個,需要在rmi服務啟動時加上一句
          java  -Djava.rmi.server.hostname=localhost ……
          其中localhost可以強制定義為機器的IP地址 
          posted @ 2008-02-15 14:11 小平 閱讀(887) | 評論 (0)編輯 收藏
          <2008年2月>
          272829303112
          3456789
          10111213141516
          17181920212223
          2425262728291
          2345678

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          framework

          j2me

          java

          linux

          web

          其他

          友情鏈接

          素材

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 德清县| 正阳县| 聂拉木县| 金堂县| 屏南县| 临桂县| 息烽县| 香格里拉县| 贵州省| 民权县| 灯塔市| 墨竹工卡县| 尼玛县| 莱州市| 三江| 松江区| 吴旗县| 阿荣旗| 师宗县| 开原市| 巩义市| 三台县| 巴彦淖尔市| 孝义市| 罗定市| 高要市| 江川县| 镇坪县| 长治县| 新绛县| 扬州市| 奉贤区| 扎兰屯市| 阿坝县| 鄢陵县| 桦甸市| 新宾| 桑日县| 宜章县| 兴和县| 兴义市|