1 /*
2 * Copyright 2021 TiKV Project Authors.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 *
16 */
17
18 package org.tikv.common.log;
19
20 import com.google.common.collect.ImmutableMap;
21 import java.util.Map;
22
23 public interface SlowLog {
24
25 SlowLogSpan start(String name);
26
27 long getTraceId();
28
29 long getThresholdMS();
30
31 void setError(Throwable err);
32
33 SlowLog withFields(Map<String, Object> fields);
34
35 default SlowLog withField(String key, Object value) {
36 return withFields(ImmutableMap.of(key, value));
37 }
38
39 Object getField(String key);
40
41 void log();
42 }