@EventHandler
  public static void onTransaction(TransactionEvent event) {
    String template = (event.getTransactionType() == BUY ? BUY_MESSAGE : SELL_MESSAGE);

    StringBuilder items = new StringBuilder(50);

    for (ItemStack item : event.getStock()) {
      items.append(item.getAmount()).append(' ').append(getSignName(item));
    }

    String message =
        String.format(
            template,
            event.getClient().getName(),
            items.toString(),
            event.getPrice(),
            event.getOwner().getName(),
            locationToString(event.getSign().getLocation()));

    ChestShop.getBukkitLogger().info(message);
  }