diff --git a/Dockerfile b/Dockerfile
index b87da96d..7663b0ba 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -7,7 +7,7 @@ RUN echo $(ls -1 /src/java-function-app)
RUN chmod 777 /src/java-function-app/agent/config.yaml
RUN cd /src/java-function-app && \
wget https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.19.0/jmx_prometheus_javaagent-0.19.0.jar && \
- curl -o 'elastic-apm-agent.jar' -L 'https://oss.sonatype.org/service/local/artifact/maven/redirect?r=releases&g=co.elastic.apm&a=elastic-apm-agent&v=LATEST' && \
+ curl -o 'opentelemetry-javaagent.jar' -L 'https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/download/v1.25.1/opentelemetry-javaagent.jar' && \
mkdir -p /home/site/wwwroot && \
mvn clean package -Dmaven.test.skip=true && \
cd ./target/azure-functions/ && \
@@ -17,8 +17,8 @@ RUN cd /src/java-function-app && \
RUN chmod 777 /src/java-function-app/jmx_prometheus_javaagent-0.19.0.jar && \
cp /src/java-function-app/jmx_prometheus_javaagent-0.19.0.jar /home/site/wwwroot/jmx_prometheus_javaagent-0.19.0.jar
-RUN chmod 777 /src/java-function-app/elastic-apm-agent.jar && \
- cp /src/java-function-app/elastic-apm-agent.jar /home/site/wwwroot/elastic-apm-agent.jar
+RUN chmod 777 /src/java-function-app/opentelemetry-javaagent.jar && \
+ cp /src/java-function-app/opentelemetry-javaagent.jar /home/site/wwwroot/opentelemetry-javaagent.jar
# This image is ssh enabled
#FROM mcr.microsoft.com/azure-functions/java:3.0-java$JAVA_VERSION-appservice
diff --git a/helm/values-dev.yaml b/helm/values-dev.yaml
index 5b71c00d..2478b930 100644
--- a/helm/values-dev.yaml
+++ b/helm/values-dev.yaml
@@ -90,12 +90,16 @@ microservice-chart:
COSMOS_RECEIPT_CONTAINER_NAME: "receipts"
BLOB_STORAGE_ACCOUNT_ENDPOINT: "https://pagopadweureceiptsfnsa.blob.core.windows.net/"
BLOB_STORAGE_CONTAINER_NAME: "pagopa-d-weu-receipts-azure-blob-receipt-st-attach"
- ELASTIC_APM_SERVICE_NAME: "pagopareceiptpdfgeneratorapm"
- ELASTIC_APM_APPLICATION_PACKAGES: "it.gov.pagopa.receipt.pdf.generator"
- ELASTIC_APM_SERVER_URL: "http://quickstart-apm-http.elastic-system.svc:8200"
- ELASTIC_APM_LOG_SENDING: 'false'
ENABLE_ECS_CONSOLE: "true"
- JAVA_TOOL_OPTIONS: "-javaagent:/home/site/wwwroot/jmx_prometheus_javaagent-0.19.0.jar=12345:/home/site/wwwroot/config.yaml -javaagent:/home/site/wwwroot/elastic-apm-agent.jar -Xmx1024m -XX:+UseG1GC"
+ CONSOLE_LOG_THRESHOLD: "DEBUG"
+ CONSOLE_LOG_PATTERN: "%d{HH:mm:ss.SSS}[%thread]%-5level%logger{36}-%msg%n"
+ CONSOLE_LOG_CHARSET: "UTF-8"
+ ECS_SERVICE_NAME: "pagopareceiptpdfgeneratorotl"
+ OTEL_RESOURCE_ATTRIBUTES: "service.name=pagopareceiptpdfgeneratorotl,deployment.environment=dev"
+ OTEL_EXPORTER_OTLP_ENDPOINT: "http://otel-collector.elastic-system.svc:4317"
+ OTEL_LOGS_EXPORTER: none
+ OTEL_TRACES_SAMPLER: "always_on"
+ JAVA_TOOL_OPTIONS: "-javaagent:/home/site/wwwroot/jmx_prometheus_javaagent-0.19.0.jar=12345:/home/site/wwwroot/config.yaml -javaagent:/home/site/wwwroot/opentelemetry-javaagent.jar -Xmx1024m -XX:+UseG1GC"
envFieldRef:
APP_NAME: "metadata.labels['app.kubernetes.io/instance']"
APP_VERSION: "metadata.labels['app.kubernetes.io/version']"
@@ -106,7 +110,7 @@ microservice-chart:
RECEIPT_QUEUE_CONN_STRING: "receipts-storage-account-connection-string"
OCP_APIM_SUBSCRIPTION_KEY: "shared-apim-d-subscription-key"
COSMOS_RECEIPT_KEY: "cosmos-receipt-pkey"
- ELASTIC_APM_SECRET_TOKEN: 'elastic-apm-secret-token'
+ OTEL_EXPORTER_OTLP_HEADERS: 'elastic-otl-secret-token'
keyvault:
name: "pagopa-d-receipts-kv"
tenantId: "7788edaf-0346-4068-9d79-c868aed15b3d"
diff --git a/helm/values-prod.yaml b/helm/values-prod.yaml
index bfb441c5..638ae00a 100644
--- a/helm/values-prod.yaml
+++ b/helm/values-prod.yaml
@@ -89,12 +89,16 @@ microservice-chart:
COSMOS_RECEIPT_CONTAINER_NAME: 'receipts'
BLOB_STORAGE_ACCOUNT_ENDPOINT: 'https://pagopapweureceiptsfnsa.blob.core.windows.net'
BLOB_STORAGE_CONTAINER_NAME: 'pagopa-p-weu-receipts-azure-blob-receipt-st-attach'
- ELASTIC_APM_SERVICE_NAME: "pagopareceiptpdfgeneratorapm"
- ELASTIC_APM_APPLICATION_PACKAGES: "it.gov.pagopa.receipt.pdf.generator"
- ELASTIC_APM_SERVER_URL: "http://quickstart-apm-http.elastic-system.svc:8200"
- ELASTIC_APM_LOG_SENDING: "false"
ENABLE_ECS_CONSOLE: "true"
- JAVA_TOOL_OPTIONS: "-javaagent:/home/site/wwwroot/jmx_prometheus_javaagent-0.19.0.jar=12345:/home/site/wwwroot/config.yaml -javaagent:/home/site/wwwroot/elastic-apm-agent.jar"
+ CONSOLE_LOG_THRESHOLD: "DEBUG"
+ CONSOLE_LOG_PATTERN: "%d{HH:mm:ss.SSS}[%thread]%-5level%logger{36}-%msg%n"
+ CONSOLE_LOG_CHARSET: "UTF-8"
+ ECS_SERVICE_NAME: "pagopareceiptpdfgeneratorotl"
+ OTEL_RESOURCE_ATTRIBUTES: "service.name=pagopareceiptpdfgeneratorotl,deployment.environment=prod"
+ OTEL_EXPORTER_OTLP_ENDPOINT: "http://otel-collector.elastic-system.svc:4317"
+ OTEL_LOGS_EXPORTER: none
+ OTEL_TRACES_SAMPLER: "always_on"
+ JAVA_TOOL_OPTIONS: "-javaagent:/home/site/wwwroot/jmx_prometheus_javaagent-0.19.0.jar=12345:/home/site/wwwroot/config.yaml -javaagent:/home/site/wwwroot/opentelemetry-javaagent.jar -Xmx1024m -XX:+UseG1GC"
envFieldRef:
APP_NAME: "metadata.labels['app.kubernetes.io/instance']"
APP_VERSION: "metadata.labels['app.kubernetes.io/version']"
@@ -105,7 +109,7 @@ microservice-chart:
RECEIPT_QUEUE_CONN_STRING: "receipts-storage-account-connection-string"
OCP_APIM_SUBSCRIPTION_KEY: 'shared-apim-p-subscription-key'
COSMOS_RECEIPT_KEY: "cosmos-receipt-pkey"
- ELASTIC_APM_SECRET_TOKEN: 'elastic-apm-secret-token'
+ OTEL_EXPORTER_OTLP_HEADERS: 'elastic-otl-secret-token'
keyvault:
name: "pagopa-p-receipts-kv"
tenantId: "7788edaf-0346-4068-9d79-c868aed15b3d"
diff --git a/helm/values-uat.yaml b/helm/values-uat.yaml
index 413c8603..3e167e41 100644
--- a/helm/values-uat.yaml
+++ b/helm/values-uat.yaml
@@ -90,12 +90,16 @@ microservice-chart:
COSMOS_RECEIPT_CONTAINER_NAME: 'receipts'
BLOB_STORAGE_ACCOUNT_ENDPOINT: 'https://pagopauweureceiptsfnsa.blob.core.windows.net'
BLOB_STORAGE_CONTAINER_NAME: 'pagopa-u-weu-receipts-azure-blob-receipt-st-attach'
- ELASTIC_APM_SERVICE_NAME: "pagopareceiptpdfgeneratorapm"
- ELASTIC_APM_APPLICATION_PACKAGES: "it.gov.pagopa.receipt.pdf.generator"
- ELASTIC_APM_SERVER_URL: "http://quickstart-apm-http.elastic-system.svc:8200"
- ELASTIC_APM_LOG_SENDING: "false"
ENABLE_ECS_CONSOLE: "true"
- JAVA_TOOL_OPTIONS: "-javaagent:/home/site/wwwroot/jmx_prometheus_javaagent-0.19.0.jar=12345:/home/site/wwwroot/config.yaml -javaagent:/home/site/wwwroot/elastic-apm-agent.jar -Xmx1512m -XX:+UseG1GC"
+ CONSOLE_LOG_THRESHOLD: "DEBUG"
+ CONSOLE_LOG_PATTERN: "%d{HH:mm:ss.SSS}[%thread]%-5level%logger{36}-%msg%n"
+ CONSOLE_LOG_CHARSET: "UTF-8"
+ ECS_SERVICE_NAME: "pagopareceiptpdfgeneratorotl"
+ OTEL_RESOURCE_ATTRIBUTES: "service.name=pagopareceiptpdfgeneratorotl,deployment.environment=uat"
+ OTEL_EXPORTER_OTLP_ENDPOINT: "http://otel-collector.elastic-system.svc:4317"
+ OTEL_LOGS_EXPORTER: none
+ OTEL_TRACES_SAMPLER: "always_on"
+ JAVA_TOOL_OPTIONS: "-javaagent:/home/site/wwwroot/jmx_prometheus_javaagent-0.19.0.jar=12345:/home/site/wwwroot/config.yaml -javaagent:/home/site/wwwroot/opentelemetry-javaagent.jar -Xmx1024m -XX:+UseG1GC"
envFieldRef:
APP_NAME: "metadata.labels['app.kubernetes.io/instance']"
APP_VERSION: "metadata.labels['app.kubernetes.io/version']"
@@ -106,7 +110,7 @@ microservice-chart:
RECEIPT_QUEUE_CONN_STRING: "receipts-storage-account-connection-string"
OCP_APIM_SUBSCRIPTION_KEY: 'shared-apim-u-subscription-key'
COSMOS_RECEIPT_KEY: "cosmos-receipt-pkey"
- ELASTIC_APM_SECRET_TOKEN: 'elastic-apm-secret-token'
+ OTEL_EXPORTER_OTLP_HEADERS: 'elastic-otl-secret-token'
keyvault:
name: "pagopa-u-receipts-kv"
tenantId: "7788edaf-0346-4068-9d79-c868aed15b3d"
diff --git a/pom.xml b/pom.xml
index ae540fa3..f9cf2239 100644
--- a/pom.xml
+++ b/pom.xml
@@ -195,6 +195,26 @@
1.4.7
+
+ org.slf4j
+ slf4j-api
+ 2.0.9
+
+
+
+ co.elastic.logging
+ logback-ecs-encoder
+ 1.5.0
+
+
+
+
+
+ org.codehaus.janino
+ janino
+ 2.6.1
+
+
diff --git a/src/main/java/it/gov/pagopa/receipt/pdf/generator/GenerateReceiptPdf.java b/src/main/java/it/gov/pagopa/receipt/pdf/generator/GenerateReceiptPdf.java
index 8023b0c8..faa1108d 100644
--- a/src/main/java/it/gov/pagopa/receipt/pdf/generator/GenerateReceiptPdf.java
+++ b/src/main/java/it/gov/pagopa/receipt/pdf/generator/GenerateReceiptPdf.java
@@ -29,6 +29,8 @@
*/
public class GenerateReceiptPdf {
+ private final Logger logger = LoggerFactory.getLogger(GenerateReceiptPdf.class);
+
/**
* This function will be invoked when a Queue trigger occurs
* #
@@ -93,11 +95,8 @@ public void processGenerateReceipt(
}
List itemsToNotify = new ArrayList<>();
- Logger logger = LoggerFactory.getLogger(getClass());
-
- String logMsg = String.format("[%s] function called at %s for bizEvent with id %s",
+ logger.info("[{}] function called at {} for bizEvent with id {}",
context.getFunctionName(), LocalDateTime.now(), bizEvent.getId());
- logger.info(logMsg);
//Retrieve receipt's data from CosmosDB
Receipt receipt;
@@ -130,32 +129,21 @@ public void processGenerateReceipt(
if (debtorCF != null || payerCF != null) {
boolean generateOnlyDebtor = payerCF == null || payerCF.equals(debtorCF);
-
- String log = String.format(
- "[%s] Generating pdf for Receipt with id %s",
+ logger.info("[{}] Generating pdf for Receipt with id {}",
context.getFunctionName(),
- receipt.getEventId()
- );
- logger.info(log);
+ receipt.getEventId());
//Generate and save PDF
- PdfGeneration pdfGeneration = service.handlePdfsGeneration(generateOnlyDebtor, receipt, bizEvent, debtorCF, payerCF, logger);
-
-
- log = String.format(
- "[%s] Saving pdf for Receipt with id %s to the blob storage",
+ PdfGeneration pdfGeneration = service.handlePdfsGeneration(generateOnlyDebtor, receipt, bizEvent, debtorCF, payerCF);
+ logger.info("[{}] Saving pdf for Receipt with id {} to the blob storage",
context.getFunctionName(),
- receipt.getEventId()
- );
- logger.info(log);
+ receipt.getEventId());
//Write PDF blob storage metadata on receipt
numberOfSavedPdfs = service.addPdfsMetadataToReceipt(receipt, pdfGeneration);
//Verify PDF generation success
service.verifyPdfGeneration(bizEventMessage, requeueMessage, logger, receipt, generateOnlyDebtor, pdfGeneration);
-
-
} else {
String errorMessage = String.format(
"[%s] Error processing receipt with id %s : both debtor's and payer's fiscal code are null",
@@ -169,34 +157,24 @@ public void processGenerateReceipt(
errorMessage,
bizEventMessage,
receipt,
- requeueMessage,
- logger
+ requeueMessage
);
}
//Add receipt to items to be saved to CosmosDB
itemsToNotify.add(receipt);
-
} else if (receipt != null) {
- String errorMessage = String.format(
- "[%s] Receipt with id %s not in INSERTED or RETRY",
+ logger.info("[{}] Receipt with id {} not in INSERTED or RETRY",
context.getFunctionName(),
- receipt.getEventId()
- );
- logger.info(errorMessage);
+ receipt.getEventId());
}
-
-
if (!itemsToNotify.isEmpty()) {
- String log = String.format(
- "[%s] Receipt with id %s being saved with status %s and with %s pdfs",
+ logger.info("[{}] Receipt with id {} being saved with status {} and with {} pdfs",
context.getFunctionName(),
receipt.getEventId(),
receipt.getStatus(),
- numberOfSavedPdfs
- );
- logger.info(log);
+ numberOfSavedPdfs);
documentdb.setValue(itemsToNotify);
}
}
diff --git a/src/main/java/it/gov/pagopa/receipt/pdf/generator/Info.java b/src/main/java/it/gov/pagopa/receipt/pdf/generator/Info.java
index 0aaed16f..7f4724a3 100644
--- a/src/main/java/it/gov/pagopa/receipt/pdf/generator/Info.java
+++ b/src/main/java/it/gov/pagopa/receipt/pdf/generator/Info.java
@@ -22,6 +22,8 @@
*/
public class Info {
+ private final Logger logger = LoggerFactory.getLogger(Info.class);
+
/**
* This function will be invoked when a Http Trigger occurs
*
@@ -35,13 +37,11 @@ public HttpResponseMessage run (
authLevel = AuthorizationLevel.ANONYMOUS) HttpRequestMessage> request,
final ExecutionContext context) {
- org.slf4j.Logger logger = LoggerFactory.getLogger(getClass());
-
return request.createResponseBuilder(HttpStatus.OK)
- .body(getInfo(logger))
+ .body(getInfo())
.build();
}
- public synchronized AppInfo getInfo(Logger logger) {
+ public synchronized AppInfo getInfo() {
String version = null;
String name = null;
try (InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("application.properties")) {
diff --git a/src/main/java/it/gov/pagopa/receipt/pdf/generator/ManageReceiptPoisonQueue.java b/src/main/java/it/gov/pagopa/receipt/pdf/generator/ManageReceiptPoisonQueue.java
index e9d76c61..6a712d0d 100644
--- a/src/main/java/it/gov/pagopa/receipt/pdf/generator/ManageReceiptPoisonQueue.java
+++ b/src/main/java/it/gov/pagopa/receipt/pdf/generator/ManageReceiptPoisonQueue.java
@@ -27,6 +27,8 @@
*/
public class ManageReceiptPoisonQueue {
+ private final Logger logger = LoggerFactory.getLogger(ManageReceiptPoisonQueue.class);
+
/**
* This function will be invoked when a Queue trigger occurs
*
@@ -53,33 +55,25 @@ public void processManageReceiptPoisonQueue(
OutputBinding documentdb,
final ExecutionContext context) {
- Logger logger = LoggerFactory.getLogger(getClass());
BizEvent bizEvent = null;
- String logMsg = String.format("[%s] function called at %s for payload %s",
- context.getFunctionName(), LocalDateTime.now(), errorMessage);
- logger.info(logMsg);
+ logger.info("[{}] function called at {} for payload {}", context.getFunctionName(), LocalDateTime.now(), errorMessage);
boolean retriableContent = false;
try {
//attempt to Map queue bizEventMessage to BizEvent
bizEvent = ObjectMapperUtils.mapString(errorMessage, BizEvent.class);
- logMsg = String.format("[%s] function called at %s recognized as valid BizEvent" +
- "with id %s",
+ logger.info("[{}] function called at {} recognized as valid BizEvent with id {}",
context.getFunctionName(), LocalDateTime.now(), bizEvent.getId());
- logger.info(logMsg);
if (bizEvent.getAttemptedPoisonRetry()) {
- logMsg = String.format("[%s] function called at %s for event with id %s" +
- " has ingestion already retried, sending to review",
+ logger.info("[{}] function called at {} for event with id {} has ingestion already retried, sending to review",
context.getFunctionName(), LocalDateTime.now(), bizEvent.getId());
- logger.info(logMsg);
} else {
retriableContent = true;
}
} catch (JsonProcessingException e) {
- logMsg = String.format("[%s] received parsing error in the" +
- " function called at %s for payload %s", context.getFunctionName(), LocalDateTime.now(), errorMessage);
- logger.info(logMsg);
+ logger.error("[{}] received parsing error in the function called at {} for payload {}",
+ context.getFunctionName(), LocalDateTime.now(), errorMessage, e);
}
if (retriableContent) {
@@ -95,22 +89,21 @@ public void processManageReceiptPoisonQueue(
sendMessageResult.getStatusCode());
}
} catch (Exception e) {
- logMsg = String.format("[%s] error for the function called at %s when attempting" +
- "to requeue BizEvent wit id %s, saving to cosmos for review. Call Error %s",
- context.getFunctionName(), LocalDateTime.now(), bizEvent.getId(), e.getMessage());
- logger.info(logMsg);
- saveToDocument(context, errorMessage, documentdb, logger);
+ logger.error("[{}] error for the function called at {} when attempting" +
+ "to requeue BizEvent wit id {}, saving to cosmos for review",
+ context.getFunctionName(), LocalDateTime.now(), bizEvent.getId(), e);
+ saveToDocument(context, errorMessage, documentdb);
}
} else {
- saveToDocument(context, errorMessage, documentdb, logger);
+ saveToDocument(context, errorMessage, documentdb);
}
}
private void saveToDocument(ExecutionContext context, String errorMessage,
- OutputBinding documentdb, Logger logger) {
- logger.info(String.format("[%s] saving new entry to the retry error to review with payload %s",
- context.getFunctionName(), errorMessage));
+ OutputBinding documentdb) {
+ logger.info("[{}] saving new entry to the retry error to review with payload {}",
+ context.getFunctionName(), errorMessage);
documentdb.setValue(ReceiptError.builder().messagePayload(errorMessage)
.status(ReceiptErrorStatusType.TO_REVIEW).build());
}
diff --git a/src/main/java/it/gov/pagopa/receipt/pdf/generator/RetryReviewedPoisonMessages.java b/src/main/java/it/gov/pagopa/receipt/pdf/generator/RetryReviewedPoisonMessages.java
index 8dd2d494..d31bf59a 100644
--- a/src/main/java/it/gov/pagopa/receipt/pdf/generator/RetryReviewedPoisonMessages.java
+++ b/src/main/java/it/gov/pagopa/receipt/pdf/generator/RetryReviewedPoisonMessages.java
@@ -25,6 +25,8 @@
*/
public class RetryReviewedPoisonMessages {
+ private final Logger logger = LoggerFactory.getLogger(RetryReviewedPoisonMessages.class);
+
/**
* This function will be invoked when an CosmosDB trigger occurs
*
@@ -58,11 +60,9 @@ public void processRetryReviewedPoisonMessages(
final ExecutionContext context) {
List itemsDone = new ArrayList<>();
- Logger logger = LoggerFactory.getLogger(getClass());
- String msg = String.format("[%s] documentCaptorValue stat %s function - num errors reviewed triggered %d",
+ logger.debug("[{}] documentCaptorValue stat {} function - num errors reviewed triggered {}",
context.getFunctionName(), context.getInvocationId(), items.size());
- logger.debug(msg);
ReceiptQueueClientImpl queueService = ReceiptQueueClientImpl.getInstance();
@@ -86,9 +86,8 @@ public void processRetryReviewedPoisonMessages(
} catch (Exception e) {
//Error info
- msg = String.format("[%s] Error to process receiptError with id %s",
- context.getFunctionName(), receiptError.getId());
- logger.error(msg, e);
+ logger.error("[{}] Error to process receiptError with id {}",
+ context.getFunctionName(), receiptError.getId(), e);
receiptError.setMessageError(e.getMessage());
receiptError.setStatus(ReceiptErrorStatusType.TO_REVIEW);
}
diff --git a/src/main/java/it/gov/pagopa/receipt/pdf/generator/service/GenerateReceiptPdfService.java b/src/main/java/it/gov/pagopa/receipt/pdf/generator/service/GenerateReceiptPdfService.java
index 0f450e79..f62a15df 100644
--- a/src/main/java/it/gov/pagopa/receipt/pdf/generator/service/GenerateReceiptPdfService.java
+++ b/src/main/java/it/gov/pagopa/receipt/pdf/generator/service/GenerateReceiptPdfService.java
@@ -19,6 +19,7 @@
import lombok.NoArgsConstructor;
import org.apache.http.HttpStatus;
import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import java.io.*;
import java.net.URL;
@@ -28,6 +29,8 @@
@NoArgsConstructor
public class GenerateReceiptPdfService {
+ private final Logger logger = LoggerFactory.getLogger(GenerateReceiptPdfService.class);
+
private static final int MAX_NUMBER_RETRY = Integer.parseInt(System.getenv().getOrDefault("COSMOS_RECEIPT_QUEUE_MAX_RETRY", "5"));
/**
@@ -40,7 +43,7 @@ public class GenerateReceiptPdfService {
* @param payerCF Payer fiscal code
* @return PdfGeneration object with the PDF metadata from the Blob Storage or relatives error messages
*/
- public PdfGeneration handlePdfsGeneration(boolean generateOnlyDebtor, Receipt receipt, BizEvent bizEvent, String debtorCF, String payerCF, Logger logger) {
+ public PdfGeneration handlePdfsGeneration(boolean generateOnlyDebtor, Receipt receipt, BizEvent bizEvent, String debtorCF, String payerCF) {
PdfGeneration pdfGeneration = new PdfGeneration();
if (generateOnlyDebtor) {
@@ -50,7 +53,7 @@ public PdfGeneration handlePdfsGeneration(boolean generateOnlyDebtor, Receipt re
receipt.getMdAttach().getUrl() == null ||
receipt.getMdAttach().getUrl().isEmpty())
) {
- pdfGeneration.setDebtorMetadata(generatePdf(bizEvent, debtorCF, true, logger));
+ pdfGeneration.setDebtorMetadata(generatePdf(bizEvent, debtorCF, true));
}
} else {
//Generate debtor's partial PDF
@@ -59,7 +62,7 @@ public PdfGeneration handlePdfsGeneration(boolean generateOnlyDebtor, Receipt re
receipt.getMdAttach().getUrl() == null ||
receipt.getMdAttach().getUrl().isEmpty())
) {
- pdfGeneration.setDebtorMetadata(generatePdf(bizEvent, debtorCF, false, logger));
+ pdfGeneration.setDebtorMetadata(generatePdf(bizEvent, debtorCF, false));
}
//Generate payer's complete PDF
if (payerCF != null &&
@@ -67,7 +70,7 @@ public PdfGeneration handlePdfsGeneration(boolean generateOnlyDebtor, Receipt re
receipt.getMdAttachPayer().getUrl() == null ||
receipt.getMdAttachPayer().getUrl().isEmpty())
) {
- pdfGeneration.setPayerMetadata(generatePdf(bizEvent, payerCF, true, logger));
+ pdfGeneration.setPayerMetadata(generatePdf(bizEvent, payerCF, true));
}
}
@@ -82,7 +85,7 @@ public PdfGeneration handlePdfsGeneration(boolean generateOnlyDebtor, Receipt re
* @param completeTemplate Boolean that indicates what template to use
* @return PDF metadata retrieved from Blob Storage or relative error message
*/
- private PdfMetadata generatePdf(BizEvent bizEvent, String fiscalCode, boolean completeTemplate, Logger logger) {
+ private PdfMetadata generatePdf(BizEvent bizEvent, String fiscalCode, boolean completeTemplate) {
PdfEngineRequest request = new PdfEngineRequest();
PdfMetadata response = new PdfMetadata();
@@ -109,7 +112,7 @@ private PdfMetadata generatePdf(BizEvent bizEvent, String fiscalCode, boolean co
//Save the PDF
String pdfFileName = bizEvent.getId() + fiscalCode;
- handleSaveToBlobStorage(pdfEngineResponse, response, pdfFileName, logger);
+ handleSaveToBlobStorage(pdfEngineResponse, response, pdfFileName);
} else {
//Handle PDF generation error
@@ -118,9 +121,11 @@ private PdfMetadata generatePdf(BizEvent bizEvent, String fiscalCode, boolean co
}
} catch (Exception e) {
+ String errMsg = "File template not found, error: ";
+ logger.error(errMsg, e);
//Handle file not found error
response.setStatusCode(HttpStatus.SC_INTERNAL_SERVER_ERROR);
- response.setErrorMessage("File template not found, error: " + e);
+ response.setErrorMessage(errMsg + e);
}
return response;
@@ -132,7 +137,7 @@ private PdfMetadata generatePdf(BizEvent bizEvent, String fiscalCode, boolean co
* @param response Pdf metadata containing response
* @param pdfFileName Filename composed of biz-event id and user fiscal code
*/
- private void handleSaveToBlobStorage(PdfEngineResponse pdfEngineResponse, PdfMetadata response, String pdfFileName, Logger logger) {
+ private void handleSaveToBlobStorage(PdfEngineResponse pdfEngineResponse, PdfMetadata response, String pdfFileName) {
BlobStorageResponse blobStorageResponse;
ReceiptBlobClientImpl blobClient = ReceiptBlobClientImpl.getInstance();
@@ -158,12 +163,14 @@ private void handleSaveToBlobStorage(PdfEngineResponse pdfEngineResponse, PdfMet
}
} catch (Exception e) {
+ String errMsg = "Error saving pdf to blob storage : ";
+ logger.error(errMsg, e);
//Handle Blob storage error
response.setStatusCode(ReasonErrorCode.ERROR_BLOB_STORAGE.getCode());
- response.setErrorMessage("Error saving pdf to blob storage : " + e);
+ response.setErrorMessage(errMsg + e);
}
- deleteTempFolderAndFile(tempPdfPath, tempDirectoryPath, logger);
+ deleteTempFolderAndFile(tempPdfPath, tempDirectoryPath);
}
/**
@@ -171,18 +178,14 @@ private void handleSaveToBlobStorage(PdfEngineResponse pdfEngineResponse, PdfMet
*
* @param tempPdfPath Path to the temp PDF file
* @param tempDirectoryPath Path to the temp directory containing the PDF file
- * @param logger Logger
*/
- private static void deleteTempFolderAndFile(String tempPdfPath, String tempDirectoryPath, Logger logger) {
- String logMsg;
-
+ private void deleteTempFolderAndFile(String tempPdfPath, String tempDirectoryPath) {
File tempFile = new File(tempPdfPath);
if (tempFile.exists()) {
try {
Files.delete(tempFile.toPath());
} catch (IOException e) {
- logMsg = String.format("Error deleting temporary pdf file from file system: %s", e);
- logger.warn(logMsg);
+ logger.warn("Error deleting temporary pdf file from file system", e);
}
}
@@ -191,8 +194,7 @@ private static void deleteTempFolderAndFile(String tempPdfPath, String tempDirec
try {
Files.delete(tempDirectory.toPath());
} catch (IOException e) {
- logMsg = String.format("Error deleting temporary pdf directory from file system: %s", e);
- logger.warn(logMsg);
+ logger.warn("Error deleting temporary pdf directory from file system", e);
}
}
}
@@ -276,8 +278,7 @@ public void verifyPdfGeneration(String bizEventMessage, OutputBinding re
errorMessage,
bizEventMessage,
receipt,
- requeueMessage,
- logger
+ requeueMessage
);
}
}
@@ -313,7 +314,6 @@ private static PdfMetadata returnFailedResponse(PdfMetadata responseDebtorGen, P
* @param bizEventMessage BizEvent message from queue
* @param receipt Receipt to be saved on CosmosDB
* @param requeueMessage Output Binding to save the bizEventMessage
- * @param logger Logger
*/
public void handleErrorGeneratingReceipt(
ReceiptStatusType receiptStatusType,
@@ -321,8 +321,7 @@ public void handleErrorGeneratingReceipt(
String errorMessage,
String bizEventMessage,
Receipt receipt,
- OutputBinding requeueMessage,
- Logger logger) {
+ OutputBinding requeueMessage) {
receipt.setStatus(receiptStatusType);
receipt.setNumRetry(receipt.getNumRetry() + 1);
@@ -332,7 +331,6 @@ public void handleErrorGeneratingReceipt(
//Re-queue the message
requeueMessage.setValue(bizEventMessage);
- String logMessage = "Error generating PDF at " + LocalDateTime.now() + " : " + errorMessage;
- logger.error(logMessage);
+ logger.error("Error generating PDF at {} : {}", LocalDateTime.now(), errorMessage);
}
}
diff --git a/src/main/resources/logback.xml b/src/main/resources/logback.xml
index 95665b6d..a3a63948 100644
--- a/src/main/resources/logback.xml
+++ b/src/main/resources/logback.xml
@@ -1,6 +1,8 @@
+
+
${CONSOLE_LOG_THRESHOLD}
@@ -15,7 +17,7 @@
${ECS_SERVICE_NAME}
- ${ECS_SERVICE_VERSION}
+ ${version}
${ENV}