1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
package com.java110.core.context;
 
import java.io.Serializable;
import java.net.UnknownHostException;
import java.util.Map;
 
/**
 * 交互日志
 *
 * id 业务ID,每次接口交互时的唯一编码 如订单ID 业务ID等
 * logContextId 上下文ID ,每次调用 每个系统只有一个contextId 每次不一样 生成规则为uuId
 * ip 当前主机IP
 * port 当前应用监听端口
 * url 交互地址 调用端和服务提供端 必须一致
 * serviceCode 服务编码
 * serviceName 服务名称
 * type S 调用端 C服务提供端
 * timestamp 时间戳
 * status 状态 S表示成功 F表示失败
 * messageHeaders 消息头部信息 目前只有调用端保存日志
 * message 消息 目前只有调用端保存
 * Created by wuxw on 2018/6/7.
 */
public interface TransactionLog extends Serializable {
 
    //业务ID
    public String getTransactionId();
 
    /**
     * 日志上下文ID
     * @return
     */
    public String getDataFlowId();
 
    //获取主机Ip
    public String getHostIp();
 
    //获取监听端口
    public String getPort();
 
    public String getAppId();
 
    public String getUserId();
 
    public void setAppId(String appId);
 
    public void setUserId(String userId);
 
    //业务编码,如果是批量受理就取第一个
    public String getServiceCode();
 
    //业务名称 如果是批量受理就取第一个
    public String getServiceName();
 
    //时间
    public String getTimestamp();
 
    //编码 S 表示成功 F其他表示失败
 
    /**
     * 当前状态 调用的时候和接受的时候统一写成S
     * 返回时如果返回失败则写为F
     * @return S 表示成功 F其他表示失败
     */
    public String getLogStatus();
 
    /**
     * 耗时
     * @return
     */
    public long getCostTime();
 
    /**
     * 接口请求消息
     * @return
     */
    public String getRequestMessage();
 
 
    public String getResponseMessage();
 
    /**
     * 重新构建 TransactionLog 对象 主要用于服务调用方
     * @return
     */
    public TransactionLog reBuilder(String appId,String userId,String requestMessage,String responseMessage,String logStatus,long costTime);
 
    /**
     * 重新构建 TransactionLog 对象 主要用于服务提供方
     * @param requestMessage 请求数据
     * @param responseMessage 返回数据
     * @param logStatus 数据交互状态
     * @return
     */
    public TransactionLog reBuilder(String requestMessage,String responseMessage,String logStatus,long costTime);
 
    /**
     * 转换成json模式
     * @return
     */
    public String toString();
 
}