moov-io / ach-test-harness

Programmatic and configurable ACH scenario testing of returns, NOC/corrections, reconciliation, etc.
Apache License 2.0
15 stars 7 forks source link

Optimize debug logs #203

Closed alovak closed 7 months ago

alovak commented 8 months ago

Changes

Why Are Changes Being Made

Now log entry looks like this:

platform-dev-ach-test-harness-1  | ts=2024-02-02T20:26:29Z msg="starting EntryDetail matching" app=ach-test-harness entry_trace_number=291471029446126 level=info version=v0.
9.1
platform-dev-ach-test-harness-1  | ts=2024-02-02T20:26:29Z msg="FINAL matching score negative=0 positive=4 (DFIAccountNumber, RDFIIdentification, Amount, TransactionCode)" a
pp=ach-test-harness copy_path=/reconciliation/ ed.account_number=55555 ed.amount=10000 ed.entry_type=22 ed.individual_name="Moov Financial        " ed.routing_number=2739701
16 ed.trace_number=291471029446126 entry_trace_number=291471029446126 level=info matcher.account_number=55555 matcher.amount=10000 matcher.entry_type=credit matcher.individual_name= matcher.response_idx=11 matcher.routing_number=273970116 matcher.trace_number= version=v0.9.1

before it was:

platform-dev-ach-test-harness-1  | ts=2024-02-02T19:50:15Z msg="starting EntryDetail matching" app=ach-test-harness entry_trace_number=291471029029390 level=info version=v0.
9.1
platform-dev-ach-test-harness-1  | ts=2024-02-02T19:50:15Z msg="RDFIIdentification negative match" account_number= amount=551 app=ach-test-harness ed.account_number=55555 ed
.amount=10000 ed.entry_type=22 ed.routing_number=273970116 entry_trace_number=291471029029390 entry_type=credit individual_name= level=info matcher_trace_number= response_id
x=5 return_code=R02 routing_number=221475786 version=v0.9.1
platform-dev-ach-test-harness-1  | ts=2024-02-02T19:50:15Z msg="Amount negative match" account_number= amount=551 app=ach-test-harness ed.account_number=55555 ed.amount=1000
0 ed.entry_type=22 ed.routing_number=273970116 entry_trace_number=291471029029390 entry_type=credit individual_name= level=info matcher_trace_number= response_idx=5 return_c
ode=R02 routing_number=221475786 version=v0.9.1
platform-dev-ach-test-harness-1  | ts=2024-02-02T19:50:15Z msg="TransactionCode type positive match" account_number= amount=551 app=ach-test-harness ed.account_number=55555
ed.amount=10000 ed.entry_type=22 ed.routing_number=273970116 entry_trace_number=291471029029390 entry_type=credit individual_name= level=info matcher_trace_number= response_
idx=5 return_code=R02 routing_number=221475786 version=v0.9.1
platform-dev-ach-test-harness-1  | ts=2024-02-02T19:50:15Z msg="FINAL matching score negative=2 positive=1" account_number= amount=551 app=ach-test-harness ed.account_number
=55555 ed.amount=10000 ed.entry_type=22 ed.routing_number=273970116 entry_trace_number=291471029029390 entry_type=credit individual_name= level=info matcher_trace_number= re
sponse_idx=5 return_code=R02 routing_number=221475786 version=v0.9.1
alovak commented 8 months ago

@adamdecaf I can update the context of the Match type log fields and remove empty values. I didn't do it because I'm not sure if it's intended to keep only Amount in the context:

func (m Match) Context() map[string]log.Valuer {
    logFields := log.Fields{}

    if m.Amount != nil {
        var amount = m.Amount.Value
        logFields["matcher.amount"] = log.Int(amount)
    }

    return logFields
}
adamdecaf commented 8 months ago

That Context is probably there to log the value and not the currency type. We can remove blank values from that log.Fields.

adamdecaf commented 8 months ago

@alovak Want me to merge and release this?

alovak commented 7 months ago

@adamdecaf sorry, was on vacation 🌴

adamdecaf commented 7 months ago

No worries! Hope you enjoyed the time off!