posts - 31,  comments - 31,  trackbacks - 0
                 這幾天做項目,需要做一個類似于控制臺的界面,可以將日志回顯到一個文本區(qū)域里,幾經(jīng)查找,反復(fù)測試寫了以下測試代碼。
          這是log4j.properties的配置內(nèi)容
              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的數(shù)據(jù)就可以回顯了。如果你需要的話可以將下面的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 小平 閱讀(1226) | 評論 (0)編輯 收藏
          這里制作一個引子,具體內(nèi)容比較多,而且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 小平 閱讀(1898) | 評論 (0)編輯 收藏
          DB2的Type-4驅(qū)動真的很詭異,配了兩天沒配上,發(fā)現(xiàn)是多引了一個包。就是他----“db2java.zip(db2java.jar)”只要有了他就算你已經(jīng)引入了db2jcc.jar、db2jcc_license_cisuz.jar、db2jcc_license_cu.jar也沒用。
          不知道怎么回事,本以為多引就沒錯,沒想到載這了。
          順便吧db2 type-4的配置方法貼下面:
          jdbc:db2://ip:port/數(shù)據(jù)庫
          驅(qū)動名:com.ibm.db2.jcc.DB2Driver

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

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

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

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          framework

          j2me

          java

          linux

          web

          其他

          友情鏈接

          素材

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 阿克陶县| 紫云| 娄底市| 镇康县| 新蔡县| 新丰县| 铜鼓县| 怀仁县| 洛浦县| 高阳县| 万载县| 水城县| 三原县| 甘南县| 泌阳县| 浠水县| 青神县| 庄浪县| 抚顺市| 普陀区| 武夷山市| 郴州市| 安溪县| 曲麻莱县| 马公市| 定州市| 吉隆县| 南澳县| 同江市| 娄烦县| 肥乡县| 桃园市| 嘉义县| 万荣县| 景泰县| 萨迦县| 金湖县| 黔江区| 彝良县| 濮阳市| 绥宁县|