log4j日志文件名與行號顯示亂碼? 問號? 參數問號? 日志問號?【轉】【補】


 

log4j本來設置了要打印行號與文件名的,結果有的能打印出來,有的卻是亂碼,查了些文檔之后才發現,原來打印問題是因為編繹時沒有編繹進去調試信息,所以沒辦法打印,好像有的系統又會顯示(Unknown Source)

樣例

錯誤樣例

KingTool [2018-07-18 09:54:17,386]>>>INFO>>>[ com.kingtool.Student.study(?:?) ]-[student id 23 is studing Math]

正常樣例 

KingTool [2018-07-18 09:54:17,386]>>>INFO>>>[ com.kingtool.StudentService.study(StudentService.java:139) ]-[student id 23 is studing Math]

 

log4j.properties配置

log4j.rootLogger = WARN, console

log4j.appender.console = org.apache.log4j.ConsoleAppender
log4j.appender.console.layout = org.apache.log4j.PatternLayout
#log4j.appender.console.layout.ConversionPattern = %-5p %d [%t] %c\: %m%n 
log4j.appender.console.layout.ConversionPattern = KingTool [%d{yyyy-MM-dd HH:mm:ss,SSS}]>>>%p>>>[ %l ]-[%m] %x %n

 

ant編繹

如果用Ant編譯,就在javac節點下添加debug="on"或debug="true"
<javac srcdir="src" destdir="bin" debug="on" > .....</javac>

log4j 行號與文件名打印問號 --http://www.blogjava.net/itspy/archive/2008/04/22/194686.html

Ant 的 javac標簽--https://blog.csdn.net/dy_paradise/article/details/5974856

maven編繹


如果用Maven編譯,就在<plugin>節點的<configurations>下添加<compilerArgs>節點如下:

<plugins> 
  <plugin> 
    <groupId>org.apache.maven.plugins</groupId>  
    <artifactId>maven-compiler-plugin</artifactId>  
    <version>3.6.0</version>  
    <configuration> 
      <source>1.8</source>  
      <target>1.8</target>  
      <encoding>UTF-8</encoding>  
      <compilerArgs> 
        <arg>-g</arg> 
      </compilerArgs> 
    </configuration> 
  </plugin> 
</plugins>

log4j配置后行號亂碼顯示為?問號--http://www.cnblogs.com/zhangshiwen/p/6935248.htm

 javac編繹

如果是用JAVAC編繹,那么直接加參數-g就可以了.

用法:javac <選項> <源文件>
其中,可能的選項包括:
-g 生成所有調試信息
-g:none 不生成任何調試信息
-g:{lines,vars,source} 只生成某些調試信息
-nowarn 不生成任何警告


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM