LosLog no GitHub

Boa tarde pessoal!

Depois do post sobre Logar no Doctrine2 e ZF2 resolvi atualizar o código e coloquei disponível no GitHub e Packagist.

Além das duas classes do post anterior, coloquei também uma para error e exceções e uma outra para chamadas estáticas, para facilitar debug, desenvolvimento etc.

Como está disponível publicamente, o texto está em inglês, mas para instalar basta digitar:

$ composer require los/loslog:dev-master

Habilitar o módulo no seu “config/application.config.php”:

<?php
return array(
    'modules' => array(
        'LosLog',
        'Application'
    ),
    'module_listener_options' => array(
        'config_glob_paths'    => array(
            'config/autoload/{,*.}{global,local}.php',
        ),
        'module_paths' => array(
            './module',
            './vendor',
        ),
    ),
);

Siga a documentação para usar cada uma das classes.

Seguindo a sugestão do Issac nos comentários, fiz uma alteração na StaticLogger para logar um objeto. Como os objetos podem conter outro objetos e acabar com a memória ou espaço ao tentar logá-los (especialmente nos casos com Doctrine), estou logando os atributos da própria classe e suas “parents” com seus respectivos valores, mas se for um objeto, logo apenas o nome  da classe.

Mas para isso funcionar, criei uma classe básica e seus objetos podem estender dela. A única coisa que ela acrescenta é uma função “losLogMe” com a rotina para logar o objeto. Desta maneira podemos logar todos os atributos, mesmo os “private” ou “protected”. Se por acaso não puder fazer o “extends”, basta copiar a função para o objeto que já irá funcionar.

Alguém instalou e funcionou bem ou teve algum problema?

Até a próxima!

Leandro Silva

5 comentários sobre “LosLog no GitHub

  1. Caro Leandro Silva ficou muito boa sua implementação de “Multi-Log” a instalação e usabilidade foram fáceis e rápida de ser implementadas aqui no projeto. Só tenho uma questão, creio que falta apenas algum método no StaticLog para logamos objetos e não apenas string. Agradeço deste já sua contribuição foi de ótima iniciativa para mim e com certeza toda comunidade, valeu cara Parabéns.

    • Muito obrigado Isaac pelo apoio. Ótima sugestão esta de logar um objeto. Na verdade faço apenas uma “ponte” para o Log do Zend, então você usar para logar um array e um objeto, desde que ele implemente o método __toString. Logar todos os atributos de um objeto simples é fácil usando Reflexão, mas se este objeto é composto de outros objetos que são compostos por outros, fica impraticável logar. Experimente dar um “var_dump” num objeto usando o Doctrine2 e vai ver sua tela carregando praticamente indefinidamente rs. É uma árvore gigantesca de objetos e propriedades.
      Mas seguindo sua sugestão vou fazer uma alteração para logar apenas a primeira “camada” de propriedades, que para fins de debug normalmente é suficiente.
      Obrigado pela sugestão!
      Leandro Silva

    • Issac, gostaria de avisar que acabei de atualizar o LosLog para a versão 1.0.5 e está com suporte para logar objetos. Vou atualizar o post com as mudanças. Obrigado mais uma vez pela sugestão.

Deixe uma resposta para Adailton Milhorini Cancelar resposta

This site uses Akismet to reduce spam. Learn how your comment data is processed.