Skip to main content
Esta documentação descreve como configurar o logging com o pacote AppSignal for PHP.

Configurar logging

🔐 Não envie Informações Pessoais Identificáveis (PII) para a AppSignal. Filtre PII (por exemplo, nomes, e-mails) dos logs e use um ID, hash ou identificador pseudonimizado no lugar.

Para entidades cobertas pela HIPAA, mais informações sobre como assinar um Business Associate Agreement (BAA) podem ser encontradas em nossa documentação de Business Add-Ons.
Você não precisa criar uma fonte de log para enviar logs da integração AppSignal for PHP. Uma fonte de log “application” será criada automaticamente. O pacote AppSignal for PHP utiliza os recursos de logging do OpenTelemetry para enviar logs ao AppSignal.

Laravel

Se você está usando o framework Laravel, o pacote AppSignal for PHP envia seus logs automaticamente ao AppSignal. Você não precisa configurar o Monolog diretamente.

Symfony

Se você está usando o framework Symfony, a maneira mais fácil de enviar logs ao AppSignal é usando o MonologBundle. Instale o pacote de auto-instrumentação do Monolog.
Shell
composer require open-telemetry/opentelemetry-logger-monolog
Adicione uma definição de serviço para 'appsignal.monolog.handler' que use a classe Appsignal\Integrations\Monolog\Handler.
config/services.yaml
services:
  # ... other services

  appsignal.monolog.handler:
    class: Appsignal\Integrations\Monolog\Handler
    factory: ['Appsignal\Integrations\Monolog\Handler', "withLevel"]
    arguments: ["info"] # configure log level that will reach AppSignal
Adicione appsignal.monolog.handler à pilha de handlers do Monolog.
config/packages/monolog.yaml
monolog:
  handlers:
    # other handlers

    appsignal:
      type: service
      id: appsignal.monolog.handler
      channels: ["app", "event"] # configure which channels to send to AppSignal

Monolog

O Monolog é a biblioteca de logging mais popular para PHP. Você pode usar o Monolog diretamente para enviar logs ao AppSignal. Instale o pacote de auto-instrumentação do Monolog.
Shell
composer require open-telemetry/opentelemetry-logger-monolog
Em seguida, adicione Appsignal\Integrations\Monolog\Handler à pilha de handlers do Monolog.
PHP
use Appsignal\Integrations\Monolog\Handler;
use Monolog\Logger;

$logger = new Logger('app');
$logger->pushHandler(Handler::withLevel('info'));

$logger->info('My log message');

Uso autônomo

Você também pode enviar logs com o logger autônomo usando o método helper log da classe base Appsignal. Esse método não exige configuração.
PHP
use Appsignal\Appsignal;
use Appsignal\Severity;

// Log a message
Appsignal::log(
	message: 'Log message line',
	severity: Severity::INFO,
	loggerName: 'my-app',
	attributes: [
		'customer_id' => $customer->id,
	],
);
Configure o Monolog com o handler do OpenTelemetry para enviar logs ao AppSignal:
PHP
use Appsignal\Integrations\Monolog\Handler;
use Monolog\Logger;

// Create Monolog logger with the AppSignal handler
$logger = new Logger('app', [Handler::withLevel('info')]);

Enviando logs

Monolog

Usando o Monolog, você pode definir o nível de severidade dos seus logs:
PHP
$logger->warning("Something's gone terribly wrong here");
$logger->info('User action completed successfully');
$logger->error('Database connection failed');

// using Laravel's Log facade
Log::warning("Something's gone terribly wrong here");
Log::info('User action completed successfully');
Log::error('Database connection failed');
Você pode definir atributos personalizados para enviar informações de log que podem ser usadas ao filtrar e consultar logs:
PHP
$logger->info('Generating invoice for customer', ['customer_id' => $customer->id]);

// using Laravel's Log facade
Log::info('Generating invoice for customer', ['customer_id' => $customer->id]);

Logger autônomo

Usando o logger autônomo, você pode definir o nível de severidade dos seus logs:
PHP
use Appsignal\Appsignal;
use Appsignal\Severity;

// Different severity levels
Appsignal::log(
	message: "Something's gone terribly wrong here",
	severity: Severity::WARN,
);

Appsignal::log(
	message: 'User action completed successfully',
	severity: Severity::INFO,
);

Appsignal::log(
	message: 'Database connection failed',
	severity: Severity::ERROR,
);
Você pode definir atributos personalizados para enviar informações de log que podem ser usadas ao filtrar e consultar logs:
PHP
use Appsignal\Appsignal;
use Appsignal\Severity;

function processInvoice($customer) {
	Appsignal::log(
		message: 'Generating invoice for customer',
		severity: Severity::INFO,
		attributes: ['customer_id' => $customer->id],
	);
}

Filtrando logs

Você pode consultar e filtrar pelo conteúdo da mensagem e pelos valores dos atributos dentro da ferramenta Log Management. Uma vez configurados, os atributos desejados serão enviados ao AppSignal como tags de log e poderão ser consultados na interface de logging do AppSignal.

Logging estruturado

O AppSignal oferece suporte a logging estruturado por padrão. Você pode enviar dados estruturados como atributos de log:
PHP
use Appsignal\Appsignal;
use Appsignal\Severity;

Appsignal::log(
	message: 'User action completed',
	severity: Severity::INFO,
    attributes: [
		'user_id' => $userId,
		'action' => 'purchase',
		'product_id' => $productId,
		'amount' => $amount,
		'currency' => 'USD'
	],
);

// or using Monolog
$logger->info('Generating invoice for customer', ['customer_id' => $customer->id]);

// or using Laravel's Log facade
Log::info('Generating invoice for customer', ['customer_id' => $customer->id]);
Você também pode configurar o AppSignal for PHP para ignorar linhas de log específicas usando a opção ignore_logs. Veja nosso guia Ignore Logs para saber mais.

Precisa de ajuda?

Depois de configurar sua aplicação PHP para enviar logs, os logs devem aparecer no AppSignal. Se você tiver dúvidas sobre este passo ou o AppSignal não estiver recebendo logs, você sempre pode entrar em contato para obter ajuda. Vamos te ajudar a voltar ao normal!