java.io.FileNotFoundException使用play dist

时间:2014-08-15 11:14:48

标签: java scala logging playframework log4j

当我使用play start

启动项目时,以下代码正常工作
object LogFile {
  implicit val formats = DefaultFormats
  private var fileInput = new FileInputStream("./conf/log4j.properties");
  private val properties = new Properties
  properties.load(fileInput);

  def test(head: String, data: String) {
    System.setProperty("my.log", "scala.txt")
    PropertyConfigurator.configure(properties)
    val log = Logger.getLogger(head)
    log.error(data)
  }
}

但是当我使用sudo /home/ubuntu/play/play dist时 并运行我得到的:

[error] play - Cannot invoke the action, eventually got an error:   
java.io.FileNotFoundException: ./conf/log4j.properties (No such file or directory)

我做错了什么?

我正在使用Scala 2.10和play framework 2.2

1 个答案:

答案 0 :(得分:1)

您缺少Log4j属性文件

./conf/log4j.properties

你可能错过了这个文件:

/home/ubuntu/project/conf/log4j.properties                               

sudo命令更改您正在执行的用户。所以新用户可能有不同的环境变量。

注意:project是应用程序名称。

此外,您正在使用相对路径./conf/log4j.properties,其根目录将根据您正在执行的主目录在运行时解析。 可能的解决方案:

1)不要使用相对路径,而是使用绝对路径

2)更改正在执行的用户的配置文件中的主目录     你的申请是(root用户?)

3)将丢失的文件复制到应用程序查找文件的目录