我是Play 2.1的新手,正试图找出将Play部署到我们的操作环境的最简单方法。该出的现成播放2.1功能,拥有最有希望是从“play dist”启动shell脚本无法在JAR文件中找到logger.xml
play dist
它建立一个包含所有支持JAR来运行我的应用程序,它启动了整个ZIP文件以及一些启动shell脚本事情。像冠军一样工作。
问题是我的应用程序需要更多的细粒度日志记录,而不是现成的单一大小日志/ application.log所提供的日志。在我的开发箱中,我想出了如何创建和配置conf/logger.xml来为每个控制器类执行老派主题日志记录(实际上任何类,但现在让我们继续使用控制器)。当我运行游戏控制台时,这在我的开发框中工作正常,但是当通过“play dist”构建我的应用程序并使用启动shell脚本在应用程序服务器上启动它时,我从来没有获得配置此记录器的日志文件生产。我也相信,但没有这些日志我不知道,启动命令也无法找到我为我的项目配置的全局对象。
调查我的应用程序的JAR文件我可以看到conf/application.conf和conf/logger.xml文件位于JAR中,它们只是在应用程序启动时未加载。
如何获取启动脚本的执行以从JAR文件加载logger.xml?我真的不得不在命令行上用-D指定它,还是应该直接从应用程序的JAR中加载?
我得出了类似的结论。 ZIP文件+由“play dist”生成的启动脚本务必在生产机器上用-D进行修改,以使其正常工作。这感觉就像是对我来说“玩游戏”的错误,但它可以解决。 –
Play 2.1.1中没有办法让它进入类路径从应用程序的JAR中加载logger.xml。 -Dlogger.resource = logger.xml无法找到该文件。我只通过将logger.xml复制到分发目录和-Dlogger.file = conf/logger.xml来获得成功。叹。 –
有趣!我仍然在Play 2.0.4上。您可以通过尝试'.getClass()。getResource(“/ conf/logger.xml”')来调查logger.xml是否在您的类路径中。无论如何,我发现我需要编写自己的启动脚本,其他原因。 –