zhyiwww
          用平實的筆,記錄編程路上的點點滴滴………
          posts - 536,comments - 394,trackbacks - 0
          我的程序使用log4j做日志輸出。
          程序在eclipse下運行,日志輸出正常。我的build.xml文件如下:
          <?xml version="1.0" encoding="UTF-8"?>
          <project name="USSD" basedir="." default="compile">
          ??? <property name="src.dir" value="src"/>
          ??? <property name="build.dir" value="bin"/>
          ??? <property name="lib.dir" value="F:\OPEN-LIB"/>
          ??? <path id="compile.lib">
          ??? ??? <fileset dir="${lib.dir}">
          ??? ??? ??? <include name="ojdbc14.jar"/>??? ??? ???
          ??? ??? ??? <include name="log4j-1.2.12.jar"/>
          ??? ??? ??? <include name="commons-dbcp-1.2.2.jar"/>
          ??? ??? ??? <include name="commons-pool-1.3.jar"/>???
          ??? ??? </fileset>
          ??? ??? <pathelement path="${build.dir}"/>???
          ??? </path>
          ??? <target name="initdir">
          ??? ???
          ??? </target>
          ??? <target name="compile">
          ??? ??? <javac srcdir="${src.dir}" destdir="${build.dir}">
          ??? ??? ??? <classpath refid="compile.lib"/>
          ??? ??? </javac>
          ??? </target>
          ??? <target name="run" depends="compile">
          ??? ??? <java dir="${build.dir}" classname="com.cybersoftchina.ussd.PushMain">
          ??? ??? ??? <classpath refid="compile.lib"/>
          ??? ??? </java>
          ??? </target>
          </project>

          我的第一次分析,就覺得可能是,ant系統在運行的時候沒有找到配置文件log4j.properties.
          所以,我就把src\log4j.properties 復制到 工程的根目錄,然后再運行,發現還是不行。

          所以,我就想到是src下的配置文件,在編譯之后應該復制到了和classes目錄下相對應的路徑。
          所以,我就到bin目錄下找,果然沒有。
          因為我在build.xml文件中,compile的時候,并沒有把配置文件log4j.properties復制到其對應目錄。
          所以,復制src\log4j.properties到bin\log4j.properties。
          再運行,OK了。

          解決方案:
          把src目錄的所有配置文件(此處是log4j.properties配置文件)復制到classes目錄的對應目錄。

          修改build.xml如下:
          <?xml version="1.0" encoding="UTF-8"?>
          <project name="USSD" basedir="." default="compile">
          ??? <property name="src.dir" value="src"/>
          ??? <property name="build.dir" value="bin"/>
          ??? <property name="lib.dir" value="F:\OPEN-LIB"/>
          ??? <path id="compile.lib">
          ??? ??? <fileset dir="${lib.dir}">
          ??? ??? ??? <include name="ojdbc14.jar"/>??? ??? ???
          ??? ??? ??? <include name="log4j-1.2.12.jar"/>
          ??? ??? ??? <include name="commons-dbcp-1.2.2.jar"/>
          ??? ??? ??? <include name="commons-pool-1.3.jar"/>???
          ??? ??? </fileset>
          ??? ??? <pathelement path="${build.dir}"/>???
          ??? </path>
          ??? <target name="initdir">
          ??? ???
          ??? </target>
          ??? <target name="compile">
          ??? ??? <javac srcdir="${src.dir}" destdir="${build.dir}">
          ??? ??? ??? <classpath refid="compile.lib"/>
          ??? ??? </javac>
          ??? </target>
          ??? <target name="run" depends="compile">
          ??? ??? <java dir="${build.dir}" classname="com.cybersoftchina.ussd.PushMain">
          ??? ??? ??? <classpath refid="compile.lib"/>
          ??? ??? </java>
          ??? </target>
          </project>
          <?xml version="1.0" encoding="UTF-8"?>
          <project name="USSD" basedir="." default="compile">
          ??? <property name="src.dir" value="src"/>
          ??? <property name="build.dir" value="bin"/>
          ??? <property name="lib.dir" value="F:\OPEN-LIB"/>
          ??? <path id="compile.lib">
          ??? ??? <fileset dir="${lib.dir}">
          ??? ??? ??? <include name="ojdbc14.jar"/>??? ??? ???
          ??? ??? ??? <include name="log4j-1.2.12.jar"/>
          ??? ??? ??? <include name="commons-dbcp-1.2.2.jar"/>
          ??? ??? ??? <include name="commons-pool-1.3.jar"/>???
          ??? ??? </fileset>
          ??? ??? <pathelement path="${build.dir}"/>???
          ??? </path>
          ??? <target name="initdir">
          ??? ???
          ??? </target>
          ??? <target name="compile">
          ??? ??? <javac srcdir="${src.dir}" destdir="${build.dir}">
          ??? ??? ??? <classpath refid="compile.lib"/>
          ??? ??? </javac>
          ??? ??? <copy todir="${build.dir}">
          ??? ??? ??? <fileset dir="${src.dir}">
          ??? ??? ??? ??? <include name="**/*.properties"/>???
          ??? ??? ??? ??? <include name="**/*.xml"/>
          ??? ??? ??? </fileset>
          ??? ??? </copy>

          ??? </target>
          ??? <target name="run" depends="compile">
          ??? ??? <java dir="${build.dir}" classname="com.cybersoftchina.ussd.PushMain">
          ??? ??? ??? <classpath refid="compile.lib"/>
          ??? ??? </java>
          ??? </target>
          </project>

          上面的深藍色的部分是新添加的部分。這樣,在編譯的時候就把所有的配置文件也一同復制到了class文件夾下面了。

          再ant run ,就在文件中有日志了。









          |----------------------------------------------------------------------------------------|
                                     版權聲明  版權所有 @zhyiwww
                      引用請注明來源 http://www.aygfsteel.com/zhyiwww   
          |----------------------------------------------------------------------------------------|
          posted on 2008-12-19 11:41 zhyiwww 閱讀(3893) 評論(0)  編輯  收藏 所屬分類: java basicj2ee
          主站蜘蛛池模板: 垦利县| 呼伦贝尔市| 巴南区| 沾化县| 辽阳市| 汤阴县| 三河市| 仙居县| 思南县| 邻水| 紫阳县| 镇安县| 绿春县| 巴南区| 古田县| 镇江市| 义乌市| 瓦房店市| 建昌县| 汉川市| 威海市| 酒泉市| 墨竹工卡县| 富阳市| 定州市| 百色市| 霍林郭勒市| 张掖市| 长乐市| 错那县| 莱州市| 德安县| 个旧市| 哈巴河县| 湘阴县| 贵港市| 清镇市| 洛浦县| 景东| 渭源县| 林周县|