org.killbill.billing.payment.logging.PaymentLoggingHelper Maven / Gradle / Ivy
/*
* Copyright 2016 Groupon, Inc
* Copyright 2016 The Billing Project, LLC
*
* The Billing Project licenses this file to you under the Apache License, version 2.0
* (the "License"); you may not use this file except in compliance with the
* License. You may obtain a copy of the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*/
package org.killbill.billing.payment.logging;
import java.math.BigDecimal;
import java.util.List;
import java.util.UUID;
import javax.annotation.Nullable;
import org.killbill.billing.ErrorCode;
import org.killbill.billing.account.api.Account;
import org.killbill.billing.catalog.api.Currency;
import org.killbill.billing.payment.api.PaymentApiException;
import org.killbill.billing.payment.api.TransactionStatus;
import org.slf4j.Logger;
import com.google.common.base.Joiner;
public abstract class PaymentLoggingHelper {
private static final Joiner JOINER = Joiner.on(",");
public static void logEnterAPICall(final Logger log,
final String transactionType,
final Account account,
@Nullable final UUID paymentMethodId,
@Nullable final UUID paymentId,
@Nullable final UUID transactionId,
@Nullable final BigDecimal amount,
@Nullable final Currency currency,
@Nullable final String paymentExternalKey,
@Nullable final String paymentTransactionExternalKey,
@Nullable final TransactionStatus transactionStatus,
@Nullable final List paymentControlPluginNames) {
logAPICallInternal(log,
"ENTERING ",
transactionType,
account,
paymentMethodId,
paymentId,
transactionId,
amount,
currency,
paymentExternalKey,
paymentTransactionExternalKey,
transactionStatus,
paymentControlPluginNames,
null);
}
public static void logExitAPICall(final Logger log,
final String transactionType,
final Account account,
@Nullable final UUID paymentMethodId,
@Nullable final UUID paymentId,
@Nullable final UUID transactionId,
@Nullable final BigDecimal amount,
@Nullable final Currency currency,
@Nullable final String paymentExternalKey,
@Nullable final String paymentTransactionExternalKey,
@Nullable final TransactionStatus transactionStatus,
@Nullable final List paymentControlPluginNames,
@Nullable final PaymentApiException exception) {
logAPICallInternal(log,
"EXITING ",
transactionType,
account,
paymentMethodId,
paymentId,
transactionId,
amount,
currency,
paymentExternalKey,
paymentTransactionExternalKey,
transactionStatus,
paymentControlPluginNames,
exception);
}
public static void logAPICallInternal(final Logger log,
final String prefixMsg,
final String transactionType,
final Account account,
final UUID paymentMethodId,
@Nullable final UUID paymentId,
@Nullable final UUID transactionId,
@Nullable final BigDecimal amount,
@Nullable final Currency currency,
@Nullable final String paymentExternalKey,
@Nullable final String paymentTransactionExternalKey,
@Nullable final TransactionStatus transactionStatus,
@Nullable final List paymentControlPluginNames,
@Nullable final PaymentApiException exception) {
if (log.isInfoEnabled()) {
final StringBuilder logLine = new StringBuilder(prefixMsg);
logLine.append("PaymentApi: transactionType='")
.append(transactionType)
.append("', accountId='")
.append(account.getId())
.append("'");
if (paymentMethodId != null) {
logLine.append(", paymentMethodId='")
.append(paymentMethodId)
.append("'");
}
if (paymentExternalKey != null) {
logLine.append(", paymentExternalKey='")
.append(paymentExternalKey)
.append("'");
}
if (paymentTransactionExternalKey != null) {
logLine.append(", paymentTransactionExternalKey='")
.append(paymentTransactionExternalKey)
.append("'");
}
if (paymentId != null) {
logLine.append(", paymentId='")
.append(paymentId)
.append("'");
}
if (transactionId != null) {
logLine.append(", transactionId='")
.append(transactionId)
.append("'");
}
if (amount != null) {
logLine.append(", amount='")
.append(amount)
.append("'");
}
if (currency != null) {
logLine.append(", currency='")
.append(currency)
.append("'");
}
if (transactionStatus != null) {
logLine.append(", transactionStatus='")
.append(transactionStatus)
.append("'");
}
if (paymentControlPluginNames != null) {
logLine.append(", paymentControlPluginNames='")
.append(JOINER.join(paymentControlPluginNames))
.append("'");
}
if (exception != null) {
final ErrorCode error = ErrorCode.fromCode(exception.getCode());
if (error == ErrorCode.PAYMENT_PLUGIN_API_ABORTED) {
logLine.append(", aborted=true");
}
logLine.append(", error='")
.append(error)
.append("', exception='")
.append(exception.getMessage())
.append("'");
}
log.info(logLine.toString());
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy