上一章節呢,有一個能跑的程序了。但是對做工程的人來說,用日志輸出感覺比用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 }
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
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 和上一篇文章一致,都是怎么編譯和運行
