Logs are created via the tracing
crates. We define various scopes depending on the operation we want to trace at various debug levels. The log level can be set via the RUST_LOG
environment variable, and via the /tracing-level
at runtime by the node operator.
For each request we track various information depending on the error log lvel:
- Incoming:
ERROR
:request.id
: a randomly generated uuid for that specific requestprepare.destination
: the destination of the prepare packet inside the requestprepare.amount
: the amount in the prepare packet inside the requestfrom.id
: the request sender's account uuid
DEBUG
:from.username
: the request sender's usernamefrom.ilp_address
: the request sender's ilp addressfrom.asset_code
: the request sender's asset codefrom.asset_scale
: the request sender's asset scale
- Forwarding (this is shown when an incoming request is turned into an outgoing request and is being forwarded to a peer):
ERROR
:prepare.amount
: the amount in the prepare packet inside the requestfrom.id
: the request sender's account uuid
DEBUG
:to.username
: the request receiver's usernameto.ilp_address
: the request receiver's ilp addressto.asset_code
: the request receiver's asset codeto.asset_scale
: the request receiver's asset scale
- Outgoing:
ERROR
:request.id
: a randomly generated uuid for that specific requestprepare.destination
: the destination of the prepare packet inside the requestfrom.id
: the request sender's account uuidto.id
: the request receiver's account uuid
DEBUG
:from.username
: the request sender's usernamefrom.ilp_address
: the request sender's ilp addressfrom.asset_code
: the request sender's asset codefrom.asset_scale
: the request sender's asset scaleto.username
: the request receiver's usernameto.ilp_address
: the request receiver's ilp addressto.asset_code
: the request receiver's asset codeto.asset_scale
: the request receiver's asset scale
Then, depending on the response received for the request, we add additional information to that log:
Fulfill
: We add a scope"result = fulfill"
at theDEBUG
levelfulfillment
: the fulfill packet's fulfillment condition
Reject
: We add a scope"result = "reject"
at the INFO levelreject.code
: the reject packet's error code fieldreject.message
: the reject packet's message fieldreject.triggered_by
: the reject packet's triggered_by field