Secciones

Class Phalcon\Logger

Código fuente en GitHub

Namespace Phalcon   Uses Psr\Log\LoggerInterface, Phalcon\Logger\Adapter\AdapterInterface, Phalcon\Logger\Item, Phalcon\Logger\Exception   Implements LoggerInterface

Phalcon\Logger

Este componente ofrece capacidades de registro para su aplicación. El componente acepta múltiples adaptadores, trabajando también como un registrador múltiple. Phalcon\Logger implementa PSR-3.

use Phalcon\Logger;
use Phalcon\Logger\Adapter\Stream;

$adapter1 = new Stream('/logs/first-log.log');
$adapter2 = new Stream('/remote/second-log.log');
$adapter3 = new Stream('/manager/third-log.log');

$logger = new Logger(
        'messages',
        [
            'local'   => $adapter1,
            'remote'  => $adapter2,
            'manager' => $adapter3,
        ]
    );

// Log to all adapters
$logger->error('Something went wrong');

// Log to specific adapters
$logger
        ->excludeAdapters(['manager'])
        ->info('This does not go to the "manager" logger);

Constantes

const ALERT = 2;
const CRITICAL = 1;
const CUSTOM = 8;
const DEBUG = 7;
const EMERGENCY = 0;
const ERROR = 3;
const INFO = 6;
const NOTICE = 5;
const WARNING = 4;

Propiedades

/**
 * The adapter stack
 *
 * @var AdapterInterface[]
 */
protected adapters;

/**
 * Minimum log level for the logger
 *
 * @var int
 */
protected logLevel = 8;

/**
 * @var string
 */
protected name = ;

/**
 * The excluded adapters for this log process
 *
 * @var AdapterInterface[]
 */
protected excluded;

Métodos

public function __construct( string $name, array $adapters = [] );

Constructor.

public function addAdapter( string $name, AdapterInterface $adapter ): Logger;

Añade un adaptador a la pila. Para el procesamiento usamos FIFO

public function alert( mixed $message, array $context = [] ): void;

Se deben tomar medidas de inmediato.

Ejemplo: Sitio web completo, base de datos no disponible, etc. Esto debería activar las alertas de SMS y despertarte.

public function critical( mixed $message, array $context = [] ): void;

Condiciones críticas.

Ejemplo: Componente de aplicación no disponible, excepción inesperada.

public function debug( mixed $message, array $context = [] ): void;

Información detallada de depuración.

public function emergency( mixed $message, array $context = [] ): void;

El sistema está inutilizable.

public function error( mixed $message, array $context = [] ): void;

Errores en tiempo de ejecución que no requieren una acción inmediata, pero normalmente deberían ser registrados y monitoreados.

public function excludeAdapters( array $adapters = [] ): Logger;

Excluye ciertos adaptadores.

public function getAdapter( string $name ): AdapterInterface;

Devuelve un adaptador de la pila

public function getAdapters(): array;

Devuelve el vector de la pila de adaptadores

public function getLogLevel(): int
public function getName(): string;

Devuelve el nombre del registrador

public function info( mixed $message, array $context = [] ): void;

Eventos interesantes.

Ejemplo: Inicio de sesión de usuario, registros SQL.

public function log( mixed $level, mixed $message, array $context = [] ): void;

Registros con un nivel arbitrario.

public function notice( mixed $message, array $context = [] ): void;

Eventos normales pero significativos.

public function removeAdapter( string $name ): Logger;

Elimina un adaptador de la pila

public function setAdapters( array $adapters ): Logger;

Establece la pila de adaptadores sobreescribiendo lo que ya existe

public function setLogLevel( int $level ): Logger;

Establece el nivel de registro por encima del cual podemos registrar

public function warning( mixed $message, array $context = [] ): void;

Ocurrencias excepcionales que no son errores.

Ejemplo: Uso de APIs obsoletas, mal uso de una API, cosas indeseables que no necesariamente son erróneas.

protected function addMessage( int $level, string $message, array $context = [] ): bool;

Añade un mensaje a cada manejador para procesar

protected function getLevels(): array;

Devuelve un vector de niveles de registro con conversión de entero a cadena

Abstract Class Phalcon\Logger\Adapter\AbstractAdapter

Código fuente en GitHub

Namespace Phalcon\Logger\Adapter   Uses Phalcon\Logger, Phalcon\Logger\Exception, Phalcon\Logger\Formatter\FormatterInterface, Phalcon\Logger\Item   Implements AdapterInterface

Este fichero es parte del Framework Phalcon.

(c) Phalcon Team [email protected]

Para obtener toda la información sobre derechos de autor y licencias, por favor vea el archivo LICENSE.txt que se distribuyó con este código fuente.

Propiedades

/**
 * Name of the default formatter class
 *
 * @var string
 */
protected defaultFormatter = Line;

/**
 * Formatter
 *
 * @var FormatterInterface
 */
protected formatter;

/**
 * Tells if there is an active transaction or not
 *
 * @var bool
 */
protected inTransaction = false;

/**
 * Array with messages queued in the transaction
 *
 * @var array
 */
protected queue;

Métodos

public function __destruct();

Limpieza del destructor

public function add( Item $item ): AdapterInterface;

Añade un mensaje a la cola

public function begin(): AdapterInterface;

Inicia una transacción

public function commit(): AdapterInterface;

Confirma la transacción interna

public function getFormatter(): FormatterInterface;
public function inTransaction(): bool;

Devuelve si el registrador está actualmente en una transacción activa o no

abstract public function process( Item $item ): void;

Procesa el mensaje en el adaptador

public function rollback(): AdapterInterface;

Deshace la transacción interna

public function setFormatter( FormatterInterface $formatter ): AdapterInterface;

Establece el formateador de mensajes

Interface Phalcon\Logger\Adapter\AdapterInterface

Código fuente en GitHub

Namespace Phalcon\Logger\Adapter   Uses Phalcon\Logger\Formatter\FormatterInterface, Phalcon\Logger\Item

Phalcon\Logger\AdapterInterface

Interfaz para adaptadores Phalcon\Logger

Métodos

public function add( Item $item ): AdapterInterface;

Añade un mensaje en la cola

public function begin(): AdapterInterface;

Inicia una transacción

public function close(): bool;

Cierra el registrador

public function commit(): AdapterInterface;

Confirma la transacción interna

public function getFormatter(): FormatterInterface;

Devuelve el formateador interno

public function inTransaction(): bool;

Devuelve si el registrador está actualmente en una transacción activa o no

public function process( Item $item ): void;

Procesa el mensaje en el adaptador

public function rollback(): AdapterInterface;

Deshace la transacción interna

public function setFormatter( FormatterInterface $formatter ): AdapterInterface;

Establece el formateador de mensajes

Class Phalcon\Logger\Adapter\Noop

Código fuente en GitHub

Namespace Phalcon\Logger\Adapter   Uses Phalcon\Logger\Item   Extends AbstractAdapter

Phalcon\Logger\Adapter\Noop

Adaptador para almacenar registros en archivos de texto simple

$logger = new \Phalcon\Logger\Adapter\Noop();

$logger->log(\Phalcon\Logger::ERROR, "This is an error");
$logger->error("This is another error");

$logger->close();

Métodos

public function close(): bool;

Cierra el flujo

public function process( Item $item ): void;

Procesa el mensaje, es decir, lo escribe en el fichero

Class Phalcon\Logger\Adapter\Stream

Código fuente en GitHub

Namespace Phalcon\Logger\Adapter   Uses Phalcon\Logger\Adapter, Phalcon\Logger\Exception, Phalcon\Logger\Formatter\FormatterInterface, Phalcon\Logger\Item, UnexpectedValueException   Extends AbstractAdapter

Phalcon\Logger\Adapter\Stream

Adaptador para almacenar registros en fichero de texto simple

$logger = new \Phalcon\Logger\Adapter\Stream("app/logs/test.log");

$logger->log("This is a message");
$logger->log(\Phalcon\Logger::ERROR, "This is an error");
$logger->error("This is another error");

$logger->close();

Propiedades

/**
 * Stream handler resource
 *
 * @var resource|null
 */
protected handler;

/**
 * The file open mode. Defaults to "ab"
 *
 * @var string
 */
protected mode = ab;

/**
 * Stream name
 *
 * @var string
 */
protected name;

/**
 * Path options
 *
 * @var array
 */
protected options;

Métodos

public function __construct( string $name, array $options = [] );

Constructor. Acepta el nombre y algunas opciones

public function close(): bool;

Cierra el flujo

public function getName(): string
public function process( Item $item ): void;

Procesa el mensaje, es decir, lo escribe en el fichero

Class Phalcon\Logger\Adapter\Syslog

Código fuente en GitHub

Namespace Phalcon\Logger\Adapter   Uses LogicException, Phalcon\Helper\Arr, Phalcon\Logger, Phalcon\Logger\Adapter, Phalcon\Logger\Exception, Phalcon\Logger\Formatter\FormatterInterface, Phalcon\Logger\Item   Extends AbstractAdapter

Phalcon\Logger\Adapter\Syslog

Envía registros al registrador del sistema

use Phalcon\Logger;
use Phalcon\Logger\Adapter\Syslog;

// LOG_USER is the only valid log type under Windows operating systems
$logger = new Syslog(
    "ident",
    [
        "option"   => LOG_CONS | LOG_NDELAY | LOG_PID,
        "facility" => LOG_USER,
    ]
);

$logger->log("This is a message");
$logger->log(Logger::ERROR, "This is an error");
$logger->error("This is another error");

Propiedades

/**
 * Name of the default formatter class
 *
 * @var string
 */
protected defaultFormatter = Line;

/**
 * @var int
 */
protected facility = 0;

/**
 * @var string
 */
protected name = ;

/**
 * @var bool
 */
protected opened = false;

/**
 * @var int
 */
protected option = 0;

Métodos

public function __construct( string $name, array $options = [] );

Phalcon\Logger\Adapter\Syslog constructor

public function close(): bool;

Cierra el registrador

public function process( Item $item ): void;

Procesa el mensaje, es decir, lo escribe en el syslog

Class Phalcon\Logger\AdapterFactory

Código fuente en GitHub

Namespace Phalcon\Logger   Uses Phalcon\Factory\AbstractFactory, Phalcon\Logger\Adapter\AdapterInterface   Extends AbstractFactory

Este fichero es parte del Framework Phalcon.

(c) Phalcon Team [email protected]

Para obtener toda la información sobre derechos de autor y licencias, por favor vea el archivo LICENSE.txt que se distribuyó con este código fuente.

Métodos

public function __construct( array $services = [] );

Constructor AdapterFactory.

public function newInstance( string $name, string $fileName, array $options = [] ): AdapterInterface;

Crea una nueva instancia del adaptador

protected function getAdapters(): array;

Class Phalcon\Logger\Exception

Código fuente en GitHub

Namespace Phalcon\Logger   Extends \Phalcon\Exception

Phalcon\Logger\Exception

Las excepciones lanzadas en Phalcon\Logger usarán esta clase

Abstract Class Phalcon\Logger\Formatter\AbstractFormatter

Código fuente en GitHub

Namespace Phalcon\Logger\Formatter   Uses DateTimeImmutable, DateTimeZone, Phalcon\Logger, Phalcon\Logger\Item   Implements FormatterInterface

Este fichero es parte del Framework Phalcon.

(c) Phalcon Team [email protected]

Para obtener toda la información sobre derechos de autor y licencias, por favor vea el archivo LICENSE.txt que se distribuyó con este código fuente.

Propiedades

/**
 * Default date format
 *
 * @var string
 */
protected dateFormat;

Métodos

public function getDateFormat(): string
public function interpolate( string $message, mixed $context = null );

Interpola los valores de contexto dentro de los marcadores de posición del mensaje

@see https://www.php-fig.org/psr/psr-3/ Section 1.2 Message

public function setDateFormat( string $dateFormat )
protected function getFormattedDate(): string;

Devuelve la fecha formateada para el registrador. @todo No se usa el tiempo establecido del objeto ya que tenemos una alineación incorrecta de interfaz que romperá el semver. Esto cambiará en el futuro

Interface Phalcon\Logger\Formatter\FormatterInterface

Código fuente en GitHub

Namespace Phalcon\Logger\Formatter   Uses Phalcon\Logger\Item

Phalcon\Logger\FormatterInterface

Se debe implementar esta interfaz por los formateadores en Phalcon\Logger

Métodos

public function format( Item $item ): string | array;

Aplica un formato a un elemento

Class Phalcon\Logger\Formatter\Json

Código fuente en GitHub

Namespace Phalcon\Logger\Formatter   Uses Phalcon\Helper\Json, Phalcon\Logger\Item   Extends AbstractFormatter

Phalcon\Logger\Formatter\Json

Formatea mensajes utilizando la codificación JSON

Métodos

public function __construct( string $dateFormat = string );

Constructor Phalcon\Logger\Formatter\Json

public function format( Item $item ): string;

Aplica un formato a un mensaje antes de enviarlo al registro interno

Class Phalcon\Logger\Formatter\Line

Código fuente en GitHub

Namespace Phalcon\Logger\Formatter   Uses DateTime, Phalcon\Logger\Item   Extends AbstractFormatter

Phalcon\Logger\Formatter\Line

Formatea mensajes utilizando una cadena de una línea

Propiedades

/**
 * Format applied to each message
 *
 * @var string
 */
protected format;

Métodos

public function __construct( string $format = string, string $dateFormat = string );

Constructor Phalcon\Logger\Formatter\Line

public function format( Item $item ): string;

Aplica un formato a un mensaje antes de enviarlo al registro interno

public function getFormat(): string
public function setFormat( string $format )

Class Phalcon\Logger\Item

Código fuente en GitHub

Namespace Phalcon\Logger

Phalcon\Logger\Item

Representa cada objeto en una transacción de registro

Propiedades

/**
 * Log Context
 *      
 * @var mixed
 */
protected context;

/**
 * Log message
 *
 * @var string
 */
protected message;

/**
 * Log message
 *
 * @var string
 */
protected name;

/**
 * Log timestamp
 *
 * @var integer
 */
protected time;

/**
 * Log type
 *
 * @var integer
 */
protected type;

Métodos

public function __construct( string $message, string $name, int $type, int $time = int, mixed $context = [] );

Constructor Phalcon\Logger\Item @todo Eliminar el tiempo o cambiar la firma a un vector

public function getContext(): mixed
public function getMessage(): string
public function getName(): string
public function getTime(): integer
public function getType(): integer

Class Phalcon\Logger\LoggerFactory

Código fuente en GitHub

Namespace Phalcon\Logger   Uses Phalcon\Config, Phalcon\Config\ConfigInterface, Phalcon\Helper\Arr, Phalcon\Logger

Phalcon\Logger\LoggerFactory

Factoría de Registrador

Propiedades

/**
 * @var AdapterFactory
 */
private adapterFactory;

Métodos

public function __construct( AdapterFactory $factory );
public function load( mixed $config ): Logger;

Factoría para crear una instancia desde un objeto Config

public function newInstance( string $name, array $adapters = [] ): Logger;

Devuelve un objeto Logger