2015-10-20 38 views
1

我需要阅读的src /资源的自定义log4j.properties,这是行不通的log4j属性文件中捆绑入火花应用罐子被忽略

try{ 
    val inStream :InputStream= className.this.getClass.getClassLoader.getResourceAsStream("log4j.properties"); 

    logCfgProps.load(inStream) 

} catch { 
    case e: Throwable=> 
    e.printStackTrace() 
    log.error("log.properties file not present") 
} 

PropertyConfigurator.configure(logCfgProps) 

这意味着在罐子捆绑log4j的被忽略。

我无法触及spark home中conf目录下的log4j属性。

还有什么其他的选择?

编辑 一定有什么地方错了(在类路径?) 因为这样做

val resource:URL = Thread.currentThread().getContextClassLoader() 
  .getResource("log4j.properties"); 
System.out.println("resource = " + resource); 

它指向的conf目录下的log4j的,我不能修改,而我需要忽略。

如何做到这一点?

回答

2
  1. 你可以只给另一名到您的文件(并在代码中使用它),所以与conf/log4j.properties没有冲突。

  2. 您可以在类路径中使用ClassLoader.getResources("log4j.properties")获取给定名称的所有资源,并选择您想要的。