項目自動化建構工具gradle 入門2——log4j輸出helloWorld


上一章節呢,有一個能跑的程序了。但是對做工程的人來說,用日志輸出感覺比用System.out要有檔次一點。比如使用log4j。直接上例子:

1進入D:\work\gradle\log目錄  ,您電腦沒這目錄? 那辛苦自己一級一級建立起來吧,后面的目錄也一樣。

新建文件build.gradle,文件內容是:

 1 apply plugin: 'java' // 引入java插件,
 2 
 3 repositories {    // 從哪里找jar包
 4     flatDir {    
 5         // 先看下build.gradle文件所在目錄下的 libs目錄中有沒有
 6         dirs 'libs'
 7     }
 8     maven {        
 9         //如果目錄中木有,則找url對應的maven倉庫,下面是阿里的maven倉庫,速度杠桿的。
10         url "http://maven.aliyun.com/nexus/content/groups/public/"
11     }
12     mavenCentral()    //如果都木有,則取maven的官方倉庫吧,只是這個速度要看人品
13 }
14 dependencies {    
15     // 我們代碼里需要用到的jar,可以引入不用,但是用了必須引入。
16     compile 'log4j:log4j:1.2.17'    //編譯時需要的jar
17     testCompile 'junit:junit:4.11'    //編譯測試文件所需要的
18 }
19  
20 jar {        //生成jar包,
21     // 把用到的所有的jar都打到生成的jar中。以便java -jar 執行,居家旅行必備,當然只是提供一個jar給別人用就可以注釋該行了
22     from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
23     manifest { //配置 Manifest文檔屬性
24         attributes 'Main-Class': 'log.Hello' //指定程序入口
25     }
26 }
build.gradle

 

2、進入目錄 D:\work\gradle\log\src\main\java\log,新建文件Hello.java,鍵入內容

 1 package log;
 2 import org.apache.log4j.Logger;
 3 
 4 public class Hello{
 5     private static Logger logger = Logger.getLogger(Hello.class);  
 6 
 7     public static void main(String [] args){
 8         logger.info("hello,world. welcome to gradle");  
 9     }
10 }

 

3、進入目錄:D:\work\gradle\log\src\main\resources ,新建文件log4j.properties ,鍵入內容

 1 ### 設置###
 2 log4j.rootLogger = debug,stdout,D,E
 3 
 4 ### 輸出信息到控制抬 ###
 5 log4j.appender.stdout = org.apache.log4j.ConsoleAppender
 6 log4j.appender.stdout.Target = System.out
 7 log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
 8 log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
 9 
10 ### 輸出DEBUG 級別以上的日志到=d://logs/error.log ###
11 log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
12 log4j.appender.D.File = d://logs/log.log
13 log4j.appender.D.Append = true
14 log4j.appender.D.Threshold = DEBUG 
15 log4j.appender.D.layout = org.apache.log4j.PatternLayout
16 log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n
17 
18 ### 輸出ERROR 級別以上的日志到=d://logs/error.log ###
19 log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
20 log4j.appender.E.File =d://logs/error.log 
21 log4j.appender.E.Append = true
22 log4j.appender.E.Threshold = ERROR 
23 log4j.appender.E.layout = org.apache.log4j.PatternLayout
24 log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n
log4j.properties

 

4、返回目錄:D:\work\gradle\log,

打開cmd進入該目錄,鍵入: gradle assemble

 

5、打開目錄 D:\work\gradle\log\build\libs

打開cmd進入該目錄,鍵入:java –jar log.jar

此時看到 console 輸出了 hello,liyong,welcome to gradle

 

Ok,到此我們能夠使用外部的log4的jar包進行編程了。如果您只需要有個能干活的工程,差不多了到此就好了。


 

下面照例解釋下為啥這么玩。不過還是建議先看看上一篇 <項目自動化建構工具gradle 入門1——輸出helloWorld>。

步驟1:

和上一篇相比,這個build.gradle 多了一下配置項。我們一一說明:

repositories 配置的是從哪里拿到代碼中依賴的jar包。我們配置了3個項

  flatDir 是本地文件目錄中,根目錄是 build.gradle 所在的目錄。

  maven 是自定義的maven倉庫,url是自定義maven倉庫的地址。我找到是阿里提供的,速度不錯

  mavenCentral() 是maven官方倉庫。

  其實這3個,只要gradle能找到該文件就行,隨便配置一個就好了,即使你使用了flatDir,它仍會去網絡上去找的。

dependencies 配置的是代碼需要依賴哪些jar包

  complie 是代碼編譯的時候需要依賴這些jar包,

  testCompile 是指測試代碼編譯時需要依賴的jar包,

  除此之外,還有幾個配置,比如runtime 指程序跑的時候需要哪些jar包,大家可以試試看。

  至於compile后面為什么要這么寫,實際上這是gradle 的規則,對剛入門的童鞋來說,我們不需要懂太多只需先知道如何寫如何用就行了,當以后用多了自然就懂了。最簡單的辦法是:

  1、進入網站 http://mvnrepository.com ,2、搜索log4j ,3、在搜索結果中進入第一個 項 log4j ,4、然后選擇一個版本,進入如下圖所示頁面

   如圖所示,切換到gradle 標簽,有group name version 對應的3個字符串,用冒號把這3個字符串按順序連起來就好了。

 

jar 的配置多了一行,你可以嘗試把添加的那行去掉,再執行4,5。應該會出現該圖

但是不添加能不能運行呢,也可以,但是我們得先把需要依賴的jar包找到。

jar包我們使用gradle下載過來了,C:\Users\用戶名\.gradle 文件夾中,最直接就是在文件夾中搜索log4j 。

我們將該log4j的jar拷貝到 D:\work\gradle\log\build\libs ,然后用壓縮軟件打開log.jar,進入D:\work\gradle\log\build\libs\log.jar\META-INF\,編輯MANIFEST.MF

在末尾添加一行:  Class-Path: classes/ log4j-1.2.17.jar ,此時MANIFEST.MF 文件應該是這樣的:

Manifest-Version: 1.0
Main-Class: log.Hello
Class-Path: classes/ log4j-1.2.17.jar

  

然后再執行步驟5 。是不是就ok呢?

 

步驟2:沒什么好說的,一個java 文件,唯一注意的是package 是log; 

步驟3 是log4j 的配置文件,注意會在D:/logs中生成日志文件

步驟4,5 和上一篇文章一致,都是怎么編譯和運行

 


免責聲明!

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



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