2011-01-09 142 views
0

Scala newb在這裏(這是我第二天使用它)。我想在我的Scala腳本中使用log4j日誌記錄工作。下面的腳本和結果,有什麼錯誤的想法?Scala:試圖讓log4j工作

 
[[email protected] pybackup]$ cat backup.scala 
import org.apache.log4j._ 

val log = LogFactory.getLog() 

log.info("started backup") 
[[email protected] pybackup]$ scala -cp log4j-1.2.16.jar:. backup.scala 
/home/sean/projects/personal/pybackup/backup.scala:1: error: value apache is not a member of package org 
import org.apache.log4j._ 
     ^
one error found 
+0

最後的標點符號文件名可能是問題。 – 2011-01-09 22:50:03

+0

另請參閱http://stackoverflow.com/q/978252/203968 – oluies 2011-01-10 10:51:16

回答

1

你記得把log4j.jar在類路徑?

+0

我有我的.scala源相同的目錄中的log4j jar文件,我嘗試運行scala與-cp log4j-xxjar作爲參數,didn似乎沒有任何區別 – 2011-01-09 21:25:42

2

我在Windows下重現它:'-classpath'的分隔符必須是';'那裏(不是':')。你在使用cygwin還是某種unix模擬器?

但是Scala腳本可以在classpath中沒有當前目錄的任何地方工作。嘗試使用:

$斯卡拉-cp的log4j-1.2.16.jar backup.scala

JFI:的LogFactory是一類SLF4J庫(不是log4j的)的。

UPDATE

另一種可能的情況:在類路徑破罐子,也許下載或別的東西時。 Scala解釋器報告的只是包中不可用的成員。

$ echo "qwerty" > example.jar 
$ scala -cp example.jar backup.scala 
backup.scala:1: error: value apache is not a member of package org 
... 

需要檢查的jar文件的內容:

$ jar -tf log4j-1.2.16.jar 
... 
org/apache/log4j/Appender.class 
... 
-1

而不是直接使用log4j的,你可以嘗試使用Configgy。這是Scala Way™與log4j以及配置文件一起工作。它也與SBT和Maven很好地搭配。

0

已經有類似的問題,當開始使用Eclipse進行Scala開發時,乾淨的構建解決了這個問題。

猜測Scala工具不成熟et。