如何使用org.apache.mesos.Log?

时间:2015-06-10 06:52:38

标签: logging mesos

我想通过org.apache.mesos.Log获取mesos日志,但API太少了。我不知道如何使用“作家”和“读者”。当我创建一个新的Log时,会创建一些文件,但我甚至不知道它是什么意思。有没有人用过它?

这是我的代码

public class MyMesosLog {


  private static org.apache.mesos.Log log;

  private static Log getLog(){
    return log == null ? new Log(2,"/Users/wangyao/Desktop","localhost:2181",2000, TimeUnit.MILLISECONDS,"mesos") : log;
  }

  private static Log.Writer getWriter(){
    return new Log.Writer(log,2000,TimeUnit.MILLISECONDS,5);
  }

  private static Log.Reader getReader(){
    return new Log.Reader(log);
  }

  public static void main(String[] args){
    MyMesosLog.getLog();
  }

}

结果是: 我的桌面上只创建了5个文件, 除了名为Log的文件外,这些文件中没有任何内容, 这就是信息:

2015/06/10-14:14:14.688716 1019f3000 Recovering log #12
2015/06/10-14:14:14.691651 1019f3000 Delete type=0 #12
2015/06/10-14:14:14.691729 1019f3000 Delete type=3 #10
2015/06/10-14:14:14.693408 1211e4000 Level-0 table #17: started
2015/06/10-14:14:14.693583 1211e4000 Level-0 table #17: 0 bytes OK
2015/06/10-14:14:14.694033 1211e4000 Delete type=0 #15
2015/06/10-14:14:14.694285 1211e4000 Manual compaction at level-0 from (begin) .. (end); will stop at (end)

我想得到的结果就像在这个Mesos网址中一样:http://localhost:5050/#/我可以找到任务的日志,例如:Launcher.log,stderr和stdout

2 个答案:

答案 0 :(得分:1)

Log不是关于访问日志消息,而是关于在Mesos自己的复制日志(分布式数据存储)中存储数据。

另见:http://mesos.apache.org/blog/mesos-0-17-0-released-featuring-autorecovery/

答案 1 :(得分:0)

要访问任务日志,您可以使用mesos-cli工具:

并使用mesos tailmesos cat获取任务日志。

如果您正在使用Mesosphere的Marathon和/或DCOS,您还可以尝试: