Versões anteriores Versões anteriores do SLF4J podem ser baixadas do repositório principal. Javadoc downloads Para cada módulo slf4j, os artefatos javadoc correspondentes podem ser baixados do repositório central do Maven como arquivos javadoc. jar. Projetos estreitamente relacionados módulo sysout-over-slf4j redireciona todas as chamadas para System. out e System. err para um registrador definido SLF4J com o nome da classe totalmente qualificada na qual a chamada System. out. println (ou semelhante) foi feita, em Níveis configuráveis. SLF4J Test é uma implementação SLF4J focada em facilitar testes de unidade mais fácil do código de registro. O Lidalia SLF4J Extensions permite registrar em um nível determinado em tempo de execução em vez de tempo de compilação. Adicional SLF4J software relacionado jdbcdslog uma ferramenta de rastreamento para JDBC, por Andriy Kolyadenko Log4Ant. Por JWare Software log4jdbc. Um driver JDBC que registra informações SQL antes de delegar em um driver JDBC subjacente, por Arthur Blake SLF4Fx. Um conjunto de log de código aberto para Flex, por Dmitry Motylev SLF4J logger para JRuby no Rails e arquivo de configurações. Por SonarSourcelog4j. properties exemplo Estou usando Log4j para o script de selênio, quando estou executando o script no eclipse está dando corretamente os logs, mas estou executando o script em ANT não obtendo nenhum log. Você pode me ajudar Qualquer idéia por que eu estou recebendo aviso abaixo no meu glassfish console SEVERE: log4j: WARN Nenhum appenders poderia ser encontrado para logger (org. displaytag. properties. TableProperties). Eu tenho log4j na minha pasta de classes log4j. rootLoggerDEBUG, testAppender log4j. appender. testAppendercom. webmethods. sc. logging. log4j. WmDailyFileAppender log4j. appender. testAppender. filelogtest1.log log4j. appender. testAppender. datePattern8217.8217yyyy-MM-ddHHmm log4j. appender. testAppender. Appendfalse log4j. appender. testAppender. layoutcom. webmethods. sc. log4j. PatternLayout log4j. appender. testAppender. layout. ConversionPatternmn Impedir mensagens log4j internas DEBUG de poluir a saída. Log4j. logger. org. apache. log4j. PropertyConfiguratorINFO log4j. logger. org. apache. log4j. config. PropertySetterINFO log4j. logger. org. apache. log4j. FileAppenderINFO O que é Console em termos de Linux. Estou enfrentando uma situação estranha em que os logs obrigatórios de estrutura de molas estão sendo registrados no console do Eclipse, mas não em arquivos de appender de arquivo em janelas. Alguns outros logs são registrados. Sua mola só relacionados que não são registrados no arquivo, mas é registrado no console eclipse. Na minha caixa de produção do linux, eu posso ver similarmente que nos arquivos os registros de mola não são preenchidos. Então eu quero verificar como sobre logs do console. Pesquisou em torno de um pouco, mas precisam de unserstand onde os logs do console estão presentes no LinuxUnix box. What é log4cpp Log4cpp é biblioteca de classes C para registro flexível para arquivos, syslog, IDSA e outros destinos. Ele é modelado após a biblioteca Java Log4j, ficando tão perto de sua API quanto é razoável. As fontes estão disponíveis na página de download do SourceForges. Não fornecemos binários, devido às numerosas ABIs incompatíveis (por exemplo, 2,95 vs 2,96 vs 3,0 vs 3,2) e formatos de pacotes diferentes. Uma versão estável mas antiga do log4cpp está disponível no Debian estável, veja packages. debian. orgstablelibs. Os usuários do FreeBSD podem encontrar log4cpp na coleção de portas, veja freebsd. orgportsdevel. html Log4cpp inclui suporte para a construção de RPMs, de modo a construir o seu próprio a partir da fonte tar-ball é tão simples como A partir da versão 0.2.0 log4cpp pode ser construir usando autoconf on Plataformas que o suportam. Basta fazer: Isso irá instalar o log4cpp em usrlocal. Para instalar em outra localidade, especifique --prefixltlocationgt ao executar configure. Opções para. configure Além das opções usuais de. configure como --prefix alguns outros estão disponíveis: --with-idsa Inclui suporte para log para IDSA (jade. cs. uct. ac. zaidsaindex. html). Isso lhe dará uma classe IdsaAppender Appender. --with-omnithreadsltpath-to-omniORBgt Habilite o suporte a multi-threading usando omniORB4s omniThreads MT biblioteca de abstração (omniorb. org). Configure espera que os arquivos de cabeçalho omnithread residam em ltpath-to-omniORBgtinclude ea biblioteca em ltpath-to-omniORBltlib, ou seja, não em um subdiretório específico da plataforma. Crie ligações simbólicas onde necessário. NB. OmniORB4 é necessário: omniORB3 não será suficiente, pois não tem suporte suficiente para dados específicos de thread. No momento (agosto de 2002) omniORB4 está em beta, no entanto a maioria das peças e, especificamente, a biblioteca de threading parecem ser bastante estável. --with-pthreads Ative o suporte multithread usando a biblioteca de threads pthread POSIX. Esta opção é mutuamente exclusiva com --with-omnithreads. --enable-doxyen Permite a geração de documentação API por Dimitri van Heeschs Doxygen ferramenta (doxygen. org). O padrão é yes se doxygen pode ser encontrado no caminho de busca. --enable-html-docs Se o doxygen estiver ativado, faça com que ele gere documentação formatada em HTML. --enable-latex-docs Se o doxygen estiver ativado, faça com que ele gere a documentação formatada do LaTeX. --enable-dot Deixe Doxygen usar a ferramenta de ponto de GraphViz (graphviz. org) todraw seus gráficos. --disable-remote-syslog Excluir RemoteSyslogAppender da compilação (incluído por padrão) --disable-smtp Excluir SmtpAppender da compilação (incluído por padrão) Construir notas para plataformas específicas nix - g compilador Log4cpp deve construir whitout modificação em qualquer sistema decente nix com G e GNU make. A principal plataforma de desenvolvimento é RedHat Linux 7.3, que tem g 2.96-rh, mas o objetivo é ser compatível com a partir de g 2.95 e para cima. Quando g 3.x tem sido amplamente adotado, podemos soltar suporte para versões g mais antigas. Solaris - Sun compilador CC compilação com Suns CC compilador requer configuração algumas variáveis de ambiente. Também as bibliotecas estáticas parecem não funcionar. Em poucas palavras: Win32 - VS2010 Use o espaço de trabalho e arquivos de projeto no subdiretório msvc10. (Talvez seja necessário ajustar includelog4cppconfig-win32.h e os arquivos de projeto para suas necessidades particulares) Win32 - MSVC 6 Use os arquivos de espaço de trabalho e projeto no subdiretório msvc6. Talvez seja necessário ajustar includelog4cppconfig-win32.h e os arquivos de projeto para suas necessidades específicas. Win32 - MSVC 5 Construir log4cpp com MSVC 5 não é suportado e não será, a menos que alguém pode encontrar uma maneira de fazê-lo sem mutilar o código-fonte. Win32 - Borland C Builder 5 Use o projeto e faça os arquivos no subdiretório bcb5. Win32 - Cygwin Use. configure fazer make install. Lembre-se de que houve muito poucos relatórios de sucesso ou falha para esta plataforma, então ele funciona muito bem ou ninguém usa ativamente o log4cpp com Cygwin :-) OpenVMS Edit includelog4cppconfig-openvms. h se você precisar de configurações diferentes. Isso foi testado apenas em OpenVMS Alpha v7.3 e Compaq C V6.3-020. 1) Copie o diretório src e include (incluindo todo o seu conteúdo e subdiretórios) em seu sistema OpenVMS. 2) Compile cada arquivo de origem (.CPP e. C no diretório src) um a um pelo seguinte comando. Etc Por favor, substitua um caminho correto para o seu diretório de inclusão. Um nome de diretório de estilo unix é requerido no parâmetro include. Neste exemplo, o caminho A1DKBO: USER. TONY. PROJECT. LOG4CPP. INCLUDE Um diretório de repositório também é especificado aqui como A1DKB0: USER. TONY. PROJECT. LOG4CPP. REPOSITORY. 3) Crie uma biblioteca estática, LOG4CPP. OLB 4) Coloque todos os arquivos OBJ compilados no LOG4CPP. OLB. Etc 5) Vincular um programa com log4cpp. olb. Por exemplo: A partir da versão 0.2.1, esta biblioteca é licenciada sob a Licença Pública Geral Menor em vez da Licença Pública Geral. Nenhuma outra alteração de licença é planejada :-). API Documentação gerada pelo Doxygen pode ser encontrada aqui. O Solaris Developer Connection apresenta um artigo de Mo Budlon sobre o uso do log4cpp 0.2.x, chamado Registro e rastreamento em C simplificado. Leitura recomendada se você está tentando descobrir como usar log4cpp 1. GERAL 1.1. O que é Log for C Log para C é uma biblioteca de classes C para registro flexível em arquivos, syslog e outros destinos. Ele é modelado após a biblioteca Log for Java (jakarta. apache. orglog4j), ficando tão perto de sua API quanto é razoável. 1.2. Como o Log for C é relacionado a Log4j É uma porta direta Log for C se esforça para fornecer uma interface semelhante para o log em C como Log4j fornece em Java. No entanto, a implementação não é uma tradução do código Java. Então, nesse sentido, não é um porto de Log4j. Claro que Log for C deve muitos de seus conceitos ao log4j. 1.3. Qual é o nome deste projeto, Log for C ou log4cpp O nome longo oficial do projeto é Log for C, mas na prática, o nome curto, log4cpp provou ser mais conveniente. 1.4. Sob o qual a licença é Log for C available A partir da versão 0.2.1 Log for C é lançado sob a GNU Lesser General Public License (LGPL). Versões anteriores foram lançadas sob a GPL. Veja a discussão da licença no fórum em SourceForge para as motivações atrás de mudar de GPL a LGPL. 1.5. Nosso departamento jurídico não gosta da LGPL, você pode liberar Log para C sob licença XYZ No. Resposta longa: Tecnicamente, pode ser possível se cada colaborador concorda, que devido ao seu número crescente tornou-se cada vez mais difícil. Mas mesmo que isso possa ser superado, isso não acontecerá. Claro que a LGPL concede-lhe a oportunidade de escolher a GPL em vez da LGPL, mas eu aposto XYZ GPL. 2. COMPILAÇÃO E INSTALAÇÃO 3.1. Ive compilado com sucesso log4cpp, agora como faço para usar essas coisas Ter um olhar no exemplo simples e arquivo de propriedades exemplo. Para alguns pequenos exemplos usando log4cpp, consulte o subdiretório testes. Consulte também a seção de documentação para obter um ponteiro para a documentação da API e mais informações de uso. 3.2. Log4cpp thread-safe A mesma instância do objeto log4cpp :: Category (um registrador) pode ser usada de diferentes threads simultaneamente sem sincronização explícita. O acesso simultâneo aos appenders será impedido pelo próprio objeto logger. Ele irá bloquear mutex interno cada vez quando se trata de escrever em appenders. Portanto, é seguro, por exemplo, gravar a partir de vários segmentos para o mesmo registrador que anexa ao mesmo arquivo. Embora, log4cpp está configurado de tal forma que dois loggers diferentes anexar ao mesmo appender (pode ser um arquivo), então não haverá nenhuma maneira para a estrutura de log para organizar adição adequada e as coisas podem se misturar. Portanto, este modo de configuração não é recomendado. 3.3. O que são possíveis caracteres de formato para a mensagem de log personalizado PatternLayout suporta o seguinte conjunto de caracteres de formato: - um único sinal de porcentagem c - a categoria d - o dat dat Formato de data: O caractere de formato de data pode ser seguido por um especificador de formato de data entre chaves. Por exemplo, d ou d. Se nenhum especificador de formato de data é dado, então o seguinte formato é usado: Wed 02/02 02:03:55 1980. O especificador de formato de data admite a mesma sintaxe como a função ANSI C strftime, com 1 adição. A adição é o especificador l para milissegundos, preenchido com zeros para fazer 3 dígitos. M - a mensagem n - o separador de linha específico da plataforma p - a prioridade r - milissegundos desde que este layout foi criado. R - segundos desde 1 de Janeiro de 1970 ticks do relógio u desde o início do processo x - nome do thread NDC t - Por padrão, ConversionPattern para PatternLayout é definido como mn. 4. PROBLEMAS E MENSAGENS DE ERRO 4.1. Eu recebo colisão Naming para ERRO detectado. Por favor, leia o FAQ para uma solução alternativa. Isso é causado pela grosseria de algumas plataformas, que mutilam o espaço de nomes com alguns contundentes define. Para ser mais preciso, a API do Win32 inclui definições de ERROR e DEBUG. Uma vez que o pré-processador não tem conhecimento de escopo de nomeação C isso resulta em reservar as palavras ERROR e DEBUG litterally em todos os lugares. Em particular, isto está em conflito com log4cpp :: Prioritiy :: ERROR e log4cpp :: Priority :: DEBUG. Esses dois últimos nomes vêm de log4j, então eles não são algo que nós inventamos. Eles Win32 autores não devem ter rudelessly reivindicado esses nomes genéricos através do pré-processador. Existem alternativas muito melhores: se usá-lo como uma constante de número inteiro, declare-lo usando uma construção de linguagem. Qualquer enum ou static const int ERROR1 faria bem. Use um nome menos genérico como WIN32APIERROR para tornar os conflitos de nomeação menos prováveis Caso eles usá-lo como um sinalizador para compilação condicional, use definir DEBUG DEBUG e se definido (DEBUG). Nesse caso, o pré-processador simplesmente substituiria todas as ocorrências de DEBUG no código-fonte com DEBUG, deixando de fato tudo intacto. Claro que a solução adequada seria se a parte ofensora usaria um dos métodos acima, mas poderíamos ter que esperar algum tempo para que isso realmente aconteça. Como uma alternativa log4cpp pode solução alternativa essas define. O código de solução alternativa é ativado ao fazer definir LOG4CPPFIXERRORCOLLISION 1 antes de incluir quaisquer arquivos de cabeçalho de log4cpp e depois de incluir todos os cabeçalhos de plataforma. Para plataformas Win32 esta definição já foi incluída no log4cppconfig-win32.h. Uma vez que o log4cpp foi atualizado para a API log4j 1.2, podemos nos livrar deste problema adotando os novos nomes para os níveis de log. 4.2. Estou tentando compilelink o pacote log4cpp usando o compilador SunWorkshop (CC) em uma máquina Solaris 7. A biblioteca constrói, mas o código testmain falha ao vincular corretamente. Uma solução adequada para este problema ainda não foi encontrada (sugestões são bem-vindas), mas James Emery relatou sucesso com a seguinte solução alternativa: Desabilitar a construção da biblioteca estática Altere o vinculador de usrucbld para CC e habilite o código independente do local. Em suma, configure com: 4.3. Configure falha ao detectar snprintf () na plataforma XYZ. Configure não basta verificar a presença de uma função snprintf (), mas também para a compatibilidade C99. Em particular, snprintf () deve honrar estritamente o parâmetro de tamanho de seqüência de caracteres para evitar possíveis problemas de estouro de buffer. Log4cpp recai para uma implementação alternativa snprintf () se o sistema operacional não fornecer uma correta. Exemplo de arquivo main. cpp que faz logon no console e no arquivo program. log. Os registradores e os appenders são criados e configurados manualmente. Exemplo faz uso do log de estilo de função e log de estilo de fluxo. Saída do console para esse exemplo Exemplo de arquivo main. cpp que faz uso do arquivo de configuração de registro log4cpp. properties Arquivo de configuração para uso com esse código Saída do console para esse exemplo Existem três loggers (incluindo root) e três appenders. Logger raiz redireciona todos os seus próprios entrada e entrada de seu descendente no console. Descendente sub1 grava em dois arquivos, filtrando saída por prioridade de mensagem para o segundo deles. Descendente sub1.sub2 escreve também em arquivo de rolamento. O arquivo de log A3.log é rolado quando atinge o limite de 200 bytes, 1 arquivo de log de backup é mantido. Log4cpp também está disponível diretamente através do CVS, consulte a página do SourceForge CVS para obter instruções. Atualmente, o CVS tem duas ramificações: para o desenvolvimento de log4cpp para manutenção de log4cpp-stable (0.2.x) Cada versão receberá uma tag chamada RELxyz. Para começar a trabalhar com uma revisão log4cpp recentemente verificada, execute. autogen. sh primeiro. Isso criará o. configure eo Makefile. ins necessário. Você precisará de pelo menos autoconf 2.50, automake 1.6.0 e libtool 1.4. AVISO: lançamentos do ramo de desenvolvimento são um trabalho em andamento e podem falhar ao criar, travar ou redecorar seu área de trabalho. 1.1.2rc1 - ramo principal (04 de abril de 2015) Pequenas correções, appender DailyRollingFile, testes, opções para desabilitar suporte para smtp e syslog 1.1.1 - ramo estável (26 de novembro de 2013) Pequenas correções de arquivos de código e projeto. 1.1rc3 - ramo de desenvolvimento (18 de outubro de 2012) Criou projetos de construção para MSVC10 (VS2010). Pequenas correções de código. 0.3.4 - ramo de desenvolvimento (28 de outubro de 2002) Compilações fixas para MSVC6 e MSVC7. Removido Log4cppCleanup. 0.3.3 - ramo de desenvolvimento (26 de outubro de 2002) Corrigido 628211: falha de compilação no MSVC 6.0. Corrigido 625811: log instalação em RemoteSyslogAppender. Possivelmente fixo 415160: falha com biblioteca dinâmica no Solaris 2.6. Substituído PatternLayout com uma implementação nova, mais rápida e mais completa. 0.3.2 - filial de desenvolvimento (5 de outubro de 2002) Corrigido 614903: problema de compilação no Sun CC 5.3. Adicionado MSVC6 arquivos. dsp ausente. Instalação de log fixo no RemoteSyslogAppender. Fixed relocatability de log4cpp-devel RPM. 0.3.2rc5 - ramo de desenvolvimento (5 de outubro de 2002) Mesclado 604991: suporte para definir additivy em PropertyConfig. Merged 605143: suporte para compilação no QNX Neutrino. 0.3.2rc4 - ramo de desenvolvimento (16 de agosto de 2002) Corrigido ups última goof minuto que impediu a compilação em plataformas nix e Win32. 0.3.2rc2 - ramo de desenvolvimento (12 de agosto de 2002) Adicionado suporte para threads POSIX. Adicionado PropertyConfigurator. Documentação reorganizada. Corrigido vários bugs. 0.3.2rc1 - ramo de desenvolvimento (19 de Junho de 2002) Suporte para threads Win32 adicionados. Adicionado NTEventLogAppender. Adicionado Win32DebugAppender. Problema de contexto NDC corrigido se profundidade gt 2. Adicionado suporte aclocal. 0.3.1 - branch de desenvolvimento (4 April 2002) Adicionado classe RollingFileAppender. Corrigido bug 572467: uso de iterador invalidado. Corrigido bug 527475: bug de string de formato. Corrigido bug 530332: missing std :: specifiers. Manuseio de solicitações de recursos 536668, 527760, 527381. 0.3.0 - ramo de desenvolvimento (18 de fevereiro de 2002) Adicionado suporte experimental para aplicativos multi-threaded. Esta implementação usa omniORB4s threading biblioteca. Outras bibliotecas de threading, como Boosts, também podem ser usadas, mas isso ainda não foi implementado. 0.2.7 - ramo estável (27 Januari 2002) Suporte para vários Appenders por categoria adicionada (solicitação de recurso 501360). Corrigido erro de escopo de variável no SyslogAppender (bug 499315) Corrigido vazamento de memória no SyslogAppender e RemoteSyslogAppender (bug 499524) Corrigido problema de compilação em Filter (bug) Corrigido arquivo de configuração problema de análise no SimpleConfigurator (bug 500766) Métodos adicionados para logar no nível FATAL ) Corrigido problema de compilação Win32 (bug 506907) 0.2.6 (11 de dezembro de 2001) Suporte preliminar para OpenVMS adicionado. PatternLayout, SimpleConfigurator e RemoteSyslogAppender adicionado. 0.2.5 (11 de junho de 2001) Inclusão de apoio ao Borland C Builder. Biblioteca versão 1.0.0: esta versão não é binário compatível com os anteriores. (A atualização da versão deve ter sido feita em 0.2.4). 0.2.2 (04 de março de 2001) Inclusão da modificação da licença da plataforma Win32 (MSVC 6.0) 0.2.1 (15 de fevereiro de 2001) para a LGPL. 0.2.0 (10 de dezembro de 2000) log4cpp agora usa autoconf e automake. A versão estável a mais atrasada é 1.1.1 o log4cpp é movido para git desde que a versão 1.1.1, cvs é stale desde então A partir da versão 0.3.0 o log4cpp tem um ramo separado estável e do desenvolvimento. Lançamentos x. y.z onde y é mesmo são considerados estáveis e aqueles em que y é ímpar são experimentais (o que significa que alguns ou todos os recursos podem ser quebrados). As versões de 0.2.x são apenas para correções de bugs, os novos recursos entrarão em 0.3.x e eventualmente em 0.4.x. A codificação no Log4cpp foi iniciada por mim (Bastiaan Bakker) no final de 2000. Desde então, outras pessoas aderiram ao projeto ou contribuíram código:
No comments:
Post a Comment