当我使用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
答案 0 :(得分:1)
您缺少Log4j属性文件
./conf/log4j.properties
你可能错过了这个文件:
/home/ubuntu/project/conf/log4j.properties
sudo
命令更改您正在执行的用户。所以新用户可能有不同的环境变量。
注意:project
是应用程序名称。
此外,您正在使用相对路径./conf/log4j.properties
,其根目录将根据您正在执行的主目录在运行时解析。
可能的解决方案:
1)不要使用相对路径,而是使用绝对路径
2)更改正在执行的用户的配置文件中的主目录 你的申请是(root用户?)
3)将丢失的文件复制到应用程序查找文件的目录