是否可以知道播放应用程序的启动时间?

时间:2015-03-24 16:17:01

标签: playframework

我希望显示Play!Framework应用程序的启动时间(play runplay dist等)。

我看了一眼没有运气的Play套餐。也许我可以在Play之外的一些更深层的包中找到它(在Java中?)。

类似的东西:

System.out.println("This project has been started at :");
System.out.println(play.Play.applicaton().startTime()); // Of course this doesn't work.

感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

以下是我为我的一个项目做的事情:

public class Global extends GlobalSettings {

    public static Date startTime;

    @Override
    public void onStart(Application app) {
        super.onStart(app);
        startTime = new Date();
        Logger.info("Application ready...");
    }

}

然后,您可以通过调用Global.startTime随时随地访问该值。

可能有更好的解决方案,但我无法找到它。 也许通过查看RUNNING_PID的创建日期,但这只适用于play start

答案 1 :(得分:1)

您可以覆盖onLoadConfig中的Global.java,并将当前时间添加为配置值。

public class Global extends GlobalSettings {

  public Configuration onLoadConfig(Configuration config, java.io.File path, java.lang.ClassLoader classloader) {
    return config.underlying().withValue("start-time", ConfigValueFactory.fromAnyRef((new Date()).toString));
  }

}

当然,您可以根据自己的喜好自定义日期表示。这使得start-time配置密钥可以像应用程序中的任何其他配置值一样访问。