[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-cashless2ecash] branch master updated: logging: add status code t
From: |
gnunet |
Subject: |
[taler-cashless2ecash] branch master updated: logging: add status code to logs |
Date: |
Wed, 29 May 2024 15:58:28 +0200 |
This is an automated email from the git hooks/post-receive script.
joel-haeberli pushed a commit to branch master
in repository cashless2ecash.
The following commit(s) were added to refs/heads/master by this push:
new c5dff4e logging: add status code to logs
c5dff4e is described below
commit c5dff4ec42a205df278836e485f6c6878323009d
Author: Joel-Haeberli <haebu@rubigen.ch>
AuthorDate: Wed May 29 13:55:37 2024 +0200
logging: add status code to logs
---
c2ec/api-bank-integration.go | 17 +++++++++++++++++
c2ec/api-terminals.go | 25 +++++++++++++++++++++++++
c2ec/api-wire-gateway.go | 26 ++++++++++++++++++++++++++
c2ec/http-util.go | 2 ++
c2ec/logger.go | 8 +++++++-
5 files changed, 77 insertions(+), 1 deletion(-)
diff --git a/c2ec/api-bank-integration.go b/c2ec/api-bank-integration.go
index 8bc7ff5..a295790 100644
--- a/c2ec/api-bank-integration.go
+++ b/c2ec/api-bank-integration.go
@@ -78,11 +78,13 @@ func bankIntegrationConfig(res http.ResponseWriter, req
*http.Request) {
serializedCfg, err := encoder.EncodeToBytes(&cfg)
if err != nil {
LogInfo("bank-integration-api", fmt.Sprintf("failed serializing
config: %s", err.Error()))
+ setLastResponseCodeForLogger(HTTP_INTERNAL_SERVER_ERROR)
res.WriteHeader(HTTP_INTERNAL_SERVER_ERROR)
return
}
res.Header().Add(CONTENT_TYPE_HEADER,
encoder.HttpApplicationContentHeader())
+ setLastResponseCodeForLogger(HTTP_OK)
res.WriteHeader(HTTP_OK)
res.Write(serializedCfg)
}
@@ -93,6 +95,7 @@ func handleParameterRegistration(res http.ResponseWriter, req
*http.Request) {
registration, err := ReadStructFromBody(req, jsonCodec)
if err != nil {
LogWarn("bank-integration-api", fmt.Sprintf("invalid body for
withdrawal registration error=%s", err.Error()))
+ setLastResponseCodeForLogger(HTTP_BAD_REQUEST)
res.WriteHeader(HTTP_BAD_REQUEST)
return
}
@@ -102,12 +105,14 @@ func handleParameterRegistration(res http.ResponseWriter,
req *http.Request) {
wpd, err := ParseWopid(wopid)
if err != nil {
LogWarn("bank-integration-api", "wopid "+wopid+" not valid")
+ setLastResponseCodeForLogger(HTTP_BAD_REQUEST)
res.WriteHeader(HTTP_BAD_REQUEST)
return
}
if _, err = DB.GetWithdrawalByWopid(wpd); err != nil {
LogError("bank-integration-api", err)
+ setLastResponseCodeForLogger(HTTP_NOT_FOUND)
res.WriteHeader(HTTP_NOT_FOUND)
return
}
@@ -117,6 +122,7 @@ func handleParameterRegistration(res http.ResponseWriter,
req *http.Request) {
registration.ReservePubKey,
); err != nil {
LogError("bank-integration-api", err)
+ setLastResponseCodeForLogger(HTTP_INTERNAL_SERVER_ERROR)
res.WriteHeader(HTTP_INTERNAL_SERVER_ERROR)
return
}
@@ -124,6 +130,7 @@ func handleParameterRegistration(res http.ResponseWriter,
req *http.Request) {
withdrawal, err := DB.GetWithdrawalByWopid(wpd)
if err != nil {
LogError("bank-integration-api", err)
+ setLastResponseCodeForLogger(HTTP_INTERNAL_SERVER_ERROR)
res.WriteHeader(HTTP_INTERNAL_SERVER_ERROR)
}
@@ -137,6 +144,7 @@ func handleParameterRegistration(res http.ResponseWriter,
req *http.Request) {
resbyts, err := encoder.EncodeToBytes(resbody)
if err != nil {
LogError("bank-integration-api", err)
+ setLastResponseCodeForLogger(HTTP_INTERNAL_SERVER_ERROR)
res.WriteHeader(HTTP_INTERNAL_SERVER_ERROR)
}
@@ -184,6 +192,7 @@ func handleWithdrawalStatus(res http.ResponseWriter, req
*http.Request) {
wpd, err := ParseWopid(wopid)
if err != nil {
LogWarn("bank-integration-api", "wopid "+wopid+" not valid")
+ setLastResponseCodeForLogger(HTTP_BAD_REQUEST)
res.WriteHeader(HTTP_BAD_REQUEST)
return
}
@@ -251,11 +260,13 @@ func handleWithdrawalStatus(res http.ResponseWriter, req
*http.Request) {
select {
case <-timeoutCtx.Done():
LogInfo("bank-integration-api", "long poll time
exceeded")
+ setLastResponseCodeForLogger(HTTP_NO_CONTENT)
res.WriteHeader(HTTP_NO_CONTENT)
return
case <-notifications:
wthdrl, stat := getWithdrawalOrError(wpd)
if stat != 200 {
+ setLastResponseCodeForLogger(stat)
res.WriteHeader(stat)
} else {
res.Header().Add(CONTENT_TYPE_HEADER,
"application/json")
@@ -267,6 +278,7 @@ func handleWithdrawalStatus(res http.ResponseWriter, req
*http.Request) {
res.Write(wthdrl)
return
case status := <-errStat:
+ setLastResponseCodeForLogger(status)
res.WriteHeader(status)
return
}
@@ -280,6 +292,7 @@ func handleWithdrawalAbort(res http.ResponseWriter, req
*http.Request) {
wpd, err := ParseWopid(wopid)
if err != nil {
LogWarn("bank-integration-api", "wopid "+wopid+" not valid")
+ setLastResponseCodeForLogger(HTTP_BAD_REQUEST)
res.WriteHeader(HTTP_BAD_REQUEST)
return
}
@@ -287,11 +300,13 @@ func handleWithdrawalAbort(res http.ResponseWriter, req
*http.Request) {
withdrawal, err := DB.GetWithdrawalByWopid(wpd)
if err != nil {
LogError("bank-integration-api", err)
+ setLastResponseCodeForLogger(HTTP_NOT_FOUND)
res.WriteHeader(HTTP_NOT_FOUND)
return
}
if withdrawal.WithdrawalStatus == CONFIRMED {
+ setLastResponseCodeForLogger(HTTP_CONFLICT)
res.WriteHeader(HTTP_CONFLICT)
return
}
@@ -299,10 +314,12 @@ func handleWithdrawalAbort(res http.ResponseWriter, req
*http.Request) {
err = DB.FinaliseWithdrawal(int(withdrawal.WithdrawalRowId), ABORTED,
make([]byte, 0))
if err != nil {
LogError("bank-integration-api", err)
+ setLastResponseCodeForLogger(HTTP_INTERNAL_SERVER_ERROR)
res.WriteHeader(HTTP_INTERNAL_SERVER_ERROR)
return
}
+ setLastResponseCodeForLogger(HTTP_NO_CONTENT)
res.WriteHeader(HTTP_NO_CONTENT)
}
diff --git a/c2ec/api-terminals.go b/c2ec/api-terminals.go
index 783e78c..16d74d3 100644
--- a/c2ec/api-terminals.go
+++ b/c2ec/api-terminals.go
@@ -45,12 +45,14 @@ func handleTerminalConfig(res http.ResponseWriter, req
*http.Request) {
p, auth, err := authAndParseProvider(req)
if !auth {
+ setLastResponseCodeForLogger(HTTP_UNAUTHORIZED)
res.WriteHeader(HTTP_UNAUTHORIZED)
return
}
if err != nil || p == nil {
LogError("terminals-api", err)
+ setLastResponseCodeForLogger(HTTP_BAD_REQUEST)
res.WriteHeader(HTTP_BAD_REQUEST)
return
}
@@ -65,11 +67,13 @@ func handleTerminalConfig(res http.ResponseWriter, req
*http.Request) {
})
if err != nil {
LogError("terminals-api", err)
+ setLastResponseCodeForLogger(HTTP_INTERNAL_SERVER_ERROR)
res.WriteHeader(HTTP_INTERNAL_SERVER_ERROR)
return
}
res.Header().Add(CONTENT_TYPE_HEADER,
encoder.HttpApplicationContentHeader())
+ setLastResponseCodeForLogger(HTTP_OK)
res.WriteHeader(HTTP_OK)
res.Write(cfg)
}
@@ -78,11 +82,13 @@ func handleWithdrawalSetup(res http.ResponseWriter, req
*http.Request) {
p, auth, err := authAndParseProvider(req)
if !auth {
+ setLastResponseCodeForLogger(HTTP_UNAUTHORIZED)
res.WriteHeader(HTTP_UNAUTHORIZED)
return
}
if err != nil || p == nil {
LogError("terminals-api", err)
+ setLastResponseCodeForLogger(HTTP_BAD_REQUEST)
res.WriteHeader(HTTP_BAD_REQUEST)
return
}
@@ -91,11 +97,13 @@ func handleWithdrawalSetup(res http.ResponseWriter, req
*http.Request) {
setup, err := ReadStructFromBody(req, jsonCodec)
if err != nil {
LogWarn("terminals-api", fmt.Sprintf("invalid body for
withdrawal registration error=%s", err.Error()))
+ setLastResponseCodeForLogger(HTTP_BAD_REQUEST)
res.WriteHeader(HTTP_BAD_REQUEST)
return
}
if hasConflict(setup) {
+ setLastResponseCodeForLogger(HTTP_CONFLICT)
res.WriteHeader(HTTP_CONFLICT)
return
}
@@ -103,6 +111,7 @@ func handleWithdrawalSetup(res http.ResponseWriter, req
*http.Request) {
terminalId := parseTerminalId(req)
if terminalId == -1 {
LogWarn("terminals-api", "terminal id could not be read from
authorization header")
+ setLastResponseCodeForLogger(HTTP_BAD_REQUEST)
res.WriteHeader(HTTP_BAD_REQUEST)
return
}
@@ -113,21 +122,25 @@ func handleWithdrawalSetup(res http.ResponseWriter, req
*http.Request) {
if err != nil {
LogWarn("terminals-api", "unable to generate correct wopid")
LogError("terminals-api", err)
+ setLastResponseCodeForLogger(HTTP_INTERNAL_SERVER_ERROR)
res.WriteHeader(HTTP_INTERNAL_SERVER_ERROR)
}
suggstdAmnt, err := parseAmount(setup.SuggestedAmount)
if err != nil {
+ setLastResponseCodeForLogger(HTTP_BAD_REQUEST)
res.WriteHeader(HTTP_BAD_REQUEST)
return
}
amnt, err := parseAmount(setup.Amount)
if err != nil {
+ setLastResponseCodeForLogger(HTTP_BAD_REQUEST)
res.WriteHeader(HTTP_BAD_REQUEST)
return
}
fees, err := parseAmount(setup.TerminalFees)
if err != nil {
+ setLastResponseCodeForLogger(HTTP_BAD_REQUEST)
res.WriteHeader(HTTP_BAD_REQUEST)
return
}
@@ -144,6 +157,7 @@ func handleWithdrawalSetup(res http.ResponseWriter, req
*http.Request) {
if err != nil {
LogError("terminals-api", err)
+ setLastResponseCodeForLogger(HTTP_INTERNAL_SERVER_ERROR)
res.WriteHeader(HTTP_INTERNAL_SERVER_ERROR)
return
}
@@ -156,6 +170,7 @@ func handleWithdrawalSetup(res http.ResponseWriter, req
*http.Request) {
)
if err != nil {
LogError("terminal-api", err)
+ setLastResponseCodeForLogger(HTTP_INTERNAL_SERVER_ERROR)
res.WriteHeader(HTTP_INTERNAL_SERVER_ERROR)
return
}
@@ -168,12 +183,14 @@ func handleWithdrawalCheck(res http.ResponseWriter, req
*http.Request) {
p, auth, err := authAndParseProvider(req)
if !auth {
+ setLastResponseCodeForLogger(HTTP_UNAUTHORIZED)
res.WriteHeader(HTTP_UNAUTHORIZED)
return
}
if err != nil || p == nil {
LogError("terminals-api", err)
+ setLastResponseCodeForLogger(HTTP_BAD_REQUEST)
res.WriteHeader(HTTP_BAD_REQUEST)
return
}
@@ -183,6 +200,7 @@ func handleWithdrawalCheck(res http.ResponseWriter, req
*http.Request) {
if err != nil {
LogWarn("terminals-api", "wopid "+wopid+" not valid")
if wopid == "" {
+ setLastResponseCodeForLogger(HTTP_BAD_REQUEST)
res.WriteHeader(HTTP_BAD_REQUEST)
return
}
@@ -192,6 +210,7 @@ func handleWithdrawalCheck(res http.ResponseWriter, req
*http.Request) {
paymentNotification, err := ReadStructFromBody(req, jsonCodec)
if err != nil {
LogError("terminals-api", err)
+ setLastResponseCodeForLogger(HTTP_BAD_REQUEST)
res.WriteHeader(HTTP_BAD_REQUEST)
return
}
@@ -201,6 +220,7 @@ func handleWithdrawalCheck(res http.ResponseWriter, req
*http.Request) {
terminalId := parseTerminalId(req)
if terminalId == -1 {
LogWarn("terminals-api", "terminal id could not be read from
authorization header")
+ setLastResponseCodeForLogger(HTTP_BAD_REQUEST)
res.WriteHeader(HTTP_BAD_REQUEST)
return
}
@@ -208,6 +228,7 @@ func handleWithdrawalCheck(res http.ResponseWriter, req
*http.Request) {
trmlFees, err := ParseAmount(paymentNotification.TerminalFees)
if err != nil {
LogError("terminals-api", err)
+ setLastResponseCodeForLogger(HTTP_BAD_REQUEST)
res.WriteHeader(HTTP_BAD_REQUEST)
return
}
@@ -221,10 +242,12 @@ func handleWithdrawalCheck(res http.ResponseWriter, req
*http.Request) {
)
if err != nil {
LogError("terminals-api", err)
+ setLastResponseCodeForLogger(HTTP_BAD_REQUEST)
res.WriteHeader(HTTP_BAD_REQUEST)
return
}
+ setLastResponseCodeForLogger(HTTP_NO_CONTENT)
res.WriteHeader(HTTP_NO_CONTENT)
}
@@ -232,6 +255,7 @@ func handleWithdrawalStatusTerminal(res
http.ResponseWriter, req *http.Request)
_, auth, err := authAndParseProvider(req)
if err != nil || !auth {
+ setLastResponseCodeForLogger(HTTP_UNAUTHORIZED)
res.WriteHeader(HTTP_UNAUTHORIZED)
return
}
@@ -243,6 +267,7 @@ func handleWithdrawalAbortTerminal(res http.ResponseWriter,
req *http.Request) {
_, auth, err := authAndParseProvider(req)
if err != nil || !auth {
+ setLastResponseCodeForLogger(HTTP_UNAUTHORIZED)
res.WriteHeader(HTTP_UNAUTHORIZED)
return
}
diff --git a/c2ec/api-wire-gateway.go b/c2ec/api-wire-gateway.go
index 10bc49a..8bb9179 100644
--- a/c2ec/api-wire-gateway.go
+++ b/c2ec/api-wire-gateway.go
@@ -138,10 +138,12 @@ func wireGatewayConfig(res http.ResponseWriter, req
*http.Request) {
serializedCfg, err := NewJsonCodec[WireConfig]().EncodeToBytes(&cfg)
if err != nil {
log.Default().Printf("failed serializing config: %s",
err.Error())
+ setLastResponseCodeForLogger(HTTP_INTERNAL_SERVER_ERROR)
res.WriteHeader(HTTP_INTERNAL_SERVER_ERROR)
return
}
+ setLastResponseCodeForLogger(HTTP_OK)
res.WriteHeader(HTTP_OK)
res.Write(serializedCfg)
}
@@ -150,6 +152,7 @@ func transfer(res http.ResponseWriter, req *http.Request) {
auth := AuthenticateWirewatcher(req)
if !auth {
+ setLastResponseCodeForLogger(HTTP_UNAUTHORIZED)
res.WriteHeader(HTTP_UNAUTHORIZED)
return
}
@@ -158,12 +161,14 @@ func transfer(res http.ResponseWriter, req *http.Request)
{
transfer, err := ReadStructFromBody(req, jsonCodec)
if err != nil {
LogError("wire-gateway-api", err)
+ setLastResponseCodeForLogger(HTTP_BAD_REQUEST)
res.WriteHeader(HTTP_BAD_REQUEST)
return
}
if transfer.Amount == "" || transfer.CreditAccount == "" ||
transfer.RequestUid == "" {
LogError("wire-gateway-api", errors.New("invalid request"))
+ setLastResponseCodeForLogger(HTTP_BAD_REQUEST)
res.WriteHeader(HTTP_BAD_REQUEST)
return
}
@@ -171,6 +176,7 @@ func transfer(res http.ResponseWriter, req *http.Request) {
paytoTargetType, tid, err :=
ParsePaytoWalleeTransaction(transfer.CreditAccount)
if err != nil {
LogError("wire-gateway-api", err)
+ setLastResponseCodeForLogger(HTTP_BAD_REQUEST)
res.WriteHeader(HTTP_BAD_REQUEST)
return
}
@@ -178,6 +184,7 @@ func transfer(res http.ResponseWriter, req *http.Request) {
p, err := DB.GetTerminalProviderByPaytoTargetType(paytoTargetType)
if err != nil {
LogError("wire-gateway-api", err)
+ setLastResponseCodeForLogger(HTTP_INTERNAL_SERVER_ERROR)
res.WriteHeader(HTTP_INTERNAL_SERVER_ERROR)
return
}
@@ -185,6 +192,7 @@ func transfer(res http.ResponseWriter, req *http.Request) {
decodedRequestUid, err := talerBinaryDecode(string(transfer.RequestUid))
if err != nil {
LogError("wire-gateway-api", err)
+ setLastResponseCodeForLogger(HTTP_BAD_REQUEST)
res.WriteHeader(HTTP_BAD_REQUEST)
return
}
@@ -192,6 +200,7 @@ func transfer(res http.ResponseWriter, req *http.Request) {
t, err := DB.GetTransferById(decodedRequestUid)
if err != nil {
LogError("wire-gateway-api", err)
+ setLastResponseCodeForLogger(HTTP_INTERNAL_SERVER_ERROR)
res.WriteHeader(HTTP_INTERNAL_SERVER_ERROR)
return
}
@@ -201,6 +210,7 @@ func transfer(res http.ResponseWriter, req *http.Request) {
amount, err := ParseAmount(transfer.Amount)
if err != nil {
LogError("wire-gateway-api", err)
+ setLastResponseCodeForLogger(HTTP_INTERNAL_SERVER_ERROR)
res.WriteHeader(HTTP_INTERNAL_SERVER_ERROR)
return
}
@@ -213,6 +223,7 @@ func transfer(res http.ResponseWriter, req *http.Request) {
)
if err != nil {
LogError("wire-gateway-api", err)
+ setLastResponseCodeForLogger(HTTP_INTERNAL_SERVER_ERROR)
res.WriteHeader(HTTP_INTERNAL_SERVER_ERROR)
return
}
@@ -221,6 +232,7 @@ func transfer(res http.ResponseWriter, req *http.Request) {
ta, err := ToAmount(t.Amount)
if err != nil {
LogError("wire-gateway-api", err)
+ setLastResponseCodeForLogger(HTTP_INTERNAL_SERVER_ERROR)
res.WriteHeader(HTTP_INTERNAL_SERVER_ERROR)
return
}
@@ -230,6 +242,7 @@ func transfer(res http.ResponseWriter, req *http.Request) {
transfer.CreditAccount != t.CreditAccount {
LogWarn("wire-gateway-api", "idempotency violation")
+ setLastResponseCodeForLogger(HTTP_CONFLICT)
res.WriteHeader(HTTP_CONFLICT)
return
}
@@ -237,6 +250,7 @@ func transfer(res http.ResponseWriter, req *http.Request) {
w, err := DB.GetWithdrawalByProviderTransactionId(tid)
if err != nil || w == nil {
LogError("wire-gateway-api", err)
+ setLastResponseCodeForLogger(HTTP_INTERNAL_SERVER_ERROR)
res.WriteHeader(HTTP_INTERNAL_SERVER_ERROR)
return
}
@@ -244,6 +258,7 @@ func transfer(res http.ResponseWriter, req *http.Request) {
refundClient := PROVIDER_CLIENTS[p.Name]
if refundClient == nil {
LogError("wire-gateway-api", errors.New("client for
provider "+p.Name+" not initialized"))
+ setLastResponseCodeForLogger(HTTP_INTERNAL_SERVER_ERROR)
res.WriteHeader(HTTP_INTERNAL_SERVER_ERROR)
return
}
@@ -270,6 +285,7 @@ func historyIncoming(res http.ResponseWriter, req
*http.Request) {
auth := AuthenticateWirewatcher(req)
if !auth {
+ setLastResponseCodeForLogger(HTTP_UNAUTHORIZED)
res.WriteHeader(HTTP_UNAUTHORIZED)
return
}
@@ -322,11 +338,13 @@ func historyIncoming(res http.ResponseWriter, req
*http.Request) {
if err != nil {
LogError("wire-gateway-api", err)
+ setLastResponseCodeForLogger(HTTP_INTERNAL_SERVER_ERROR)
res.WriteHeader(HTTP_INTERNAL_SERVER_ERROR)
return
}
if len(withdrawals) < 1 {
+ setLastResponseCodeForLogger(HTTP_NO_CONTENT)
res.WriteHeader(HTTP_NO_CONTENT)
return
}
@@ -348,11 +366,13 @@ func historyIncoming(res http.ResponseWriter, req
*http.Request) {
enc, err := encoder.EncodeToBytes(&hist)
if err != nil {
LogError("wire-gateway-api", err)
+ setLastResponseCodeForLogger(HTTP_INTERNAL_SERVER_ERROR)
res.WriteHeader(HTTP_INTERNAL_SERVER_ERROR)
return
}
res.Header().Add(CONTENT_TYPE_HEADER,
encoder.HttpApplicationContentHeader())
+ setLastResponseCodeForLogger(HTTP_OK)
res.WriteHeader(HTTP_OK)
res.Write(enc)
}
@@ -361,6 +381,7 @@ func historyOutgoing(res http.ResponseWriter, req
*http.Request) {
auth := AuthenticateWirewatcher(req)
if !auth {
+ setLastResponseCodeForLogger(HTTP_UNAUTHORIZED)
res.WriteHeader(HTTP_UNAUTHORIZED)
return
}
@@ -416,6 +437,7 @@ func historyOutgoing(res http.ResponseWriter, req
*http.Request) {
if err != nil {
LogError("wire-gateway-api", err)
+ setLastResponseCodeForLogger(HTTP_INTERNAL_SERVER_ERROR)
res.WriteHeader(HTTP_INTERNAL_SERVER_ERROR)
return
}
@@ -429,6 +451,7 @@ func historyOutgoing(res http.ResponseWriter, req
*http.Request) {
}
if len(filtered) < 1 {
+ setLastResponseCodeForLogger(HTTP_NO_CONTENT)
res.WriteHeader(HTTP_NO_CONTENT)
return
}
@@ -446,11 +469,13 @@ func historyOutgoing(res http.ResponseWriter, req
*http.Request) {
enc, err := encoder.EncodeToBytes(&outgoingHistory)
if err != nil {
LogError("wire-gateway-api", err)
+ setLastResponseCodeForLogger(HTTP_INTERNAL_SERVER_ERROR)
res.WriteHeader(HTTP_INTERNAL_SERVER_ERROR)
return
}
res.Header().Add(CONTENT_TYPE_HEADER,
encoder.HttpApplicationContentHeader())
+ setLastResponseCodeForLogger(HTTP_OK)
res.WriteHeader(HTTP_OK)
res.Write(enc)
}
@@ -459,5 +484,6 @@ func historyOutgoing(res http.ResponseWriter, req
*http.Request) {
func adminAddIncoming(res http.ResponseWriter, req *http.Request) {
// not implemented, because not used
+ setLastResponseCodeForLogger(HTTP_BAD_REQUEST)
res.WriteHeader(HTTP_BAD_REQUEST)
}
diff --git a/c2ec/http-util.go b/c2ec/http-util.go
index 16f2953..dc40671 100644
--- a/c2ec/http-util.go
+++ b/c2ec/http-util.go
@@ -39,6 +39,7 @@ func AcceptOptionalParamOrWriteResponse[T any](
ptr, err := OptionalQueryParamOrError(name, transform, req)
if err != nil {
+ setLastResponseCodeForLogger(HTTP_BAD_REQUEST)
res.WriteHeader(HTTP_BAD_REQUEST)
return nil, false
}
@@ -52,6 +53,7 @@ func AcceptOptionalParamOrWriteResponse[T any](
assertedObj, ok := any(obj).(T)
if !ok {
// this should generally not happen (due to the implementation)
+ setLastResponseCodeForLogger(HTTP_INTERNAL_SERVER_ERROR)
res.WriteHeader(HTTP_INTERNAL_SERVER_ERROR)
return nil, false
}
diff --git a/c2ec/logger.go b/c2ec/logger.go
index 2d8ca00..545a171 100644
--- a/c2ec/logger.go
+++ b/c2ec/logger.go
@@ -21,6 +21,8 @@ const (
ERROR
)
+var lastResponseStatus = 0
+
func LoggingHandler(next http.Handler) http.Handler {
return http.HandlerFunc(
@@ -35,6 +37,10 @@ func LoggingHandler(next http.Handler) http.Handler {
)
}
+func setLastResponseCodeForLogger(s int) {
+ lastResponseStatus = s
+}
+
func LogRequest(src string, req *http.Request) {
LogInfo(src, fmt.Sprintf("%s - %s (origin=%s)", req.Method, req.URL,
req.RemoteAddr))
@@ -42,7 +48,7 @@ func LogRequest(src string, req *http.Request) {
func LogResponse(src string, req *http.Request) {
- LogInfo(src, fmt.Sprintf("responding to %s (destination=%s)",
req.RequestURI, req.RemoteAddr))
+ LogInfo(src, fmt.Sprintf("code=%d: responding to %s (destination=%s)",
lastResponseStatus, req.RequestURI, req.RemoteAddr))
}
func LogError(src string, err error) {
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [taler-cashless2ecash] branch master updated: logging: add status code to logs,
gnunet <=