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 閱讀(3899) 評論(0)  編輯  收藏 所屬分類: java basicj2ee
          主站蜘蛛池模板: 高碑店市| 灵石县| 福州市| 皮山县| 前郭尔| 蒙自县| 东阳市| 察雅县| 金秀| 象山县| 贺州市| 河西区| 赤峰市| 和龙市| 三明市| 长垣县| 双鸭山市| 安化县| 平阳县| 海门市| 融水| 浦北县| 涡阳县| 玉龙| 陆川县| 齐齐哈尔市| 宁安市| 涪陵区| 阿城市| 双桥区| 广德县| 盐池县| 郓城县| 乌兰县| 忻州市| 万安县| 青州市| 永顺县| 从化市| 宁明县| 清水县|