我有很多应用程序,每个都有自己的日志。我通常在分布式日志中遇到问题。
要解决此问题,我使用:
通过这种方式,我能够按照所写的顺序(按时间戳)查看所有应用程序日志。 但事实是我不能信任日志中写的时间戳。所有服务器的时钟都不同步。
所以我需要能帮助我对所有日志进行排序的东西。
我想过在每个范围内生成一个数字:
private static final String BASE_URL = "https://github.com/username/repository/";
@Provides
@Singleton
Retrofit provideRetrofit(RxJavaCallAdapterFactory rxJavaCallAdapterFactory, Gson gsonConverterFactory) {
return new Retrofit.Builder()
.baseUrl(BASE_URL)
.addCallAdapterFactory(rxJavaCallAdapterFactory)
.addConverterFactory(GsonConverterFactory.create(gsonConverterFactory))
.build();
}
这会期望按此顺序订购日志的东西: app1,app2,app3,app4,app5,app6,app7,app8
有人知道解决这个问题的技术吗?
答案 0 :(得分:1)
我们在侦探中遇到了一个问题(https://github.com/spring-cloud/spring-cloud-sleuth/issues/275)。最简单的方法是在日志中添加一个标记/条目,该标记/条目将随每个子跨度递增。您可以重用Sleuth的内部结构,以覆盖DefaultTracer's
行为以在子跨距创建上添加其他标记。然后在Slf4jLogger
中,您将重用该标记以在MDC上下文中设置其他元素