Você está aqui: JPA - Java Persistence Architecture API - Arquitetura de Persistência Java ::: Configurações ::: persistence.xml

Usando a propriedade eclipselink.logging.level para definir o nível de log que o EclipseLink fará durante a execução de suas aplicações JPA

Quantidade de visualizações: 3220 vezes
Por padrão, a implementação JPA do EclipseLink registra (log) a operação de login e logout por sessão. Veja um exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

[EL Info]: 2013-05-31 12:40:50.346--ServerSession(1906304594)--
EclipseLink, version: Eclipse Persistence Services - 
2.5.0.v20130507-3faac2b
[EL Info]: connection: 2013-05-31 12:40:50.896--ServerSession(1906304594)
--
file:/C:/estudos_jpa/EstudosJPA/build/classes/_LocadoraService 
login successful
[EL Info]: connection: 2013-05-31 12:40:51.118--ServerSession(1906304594)
--
file:/C:/estudos_jpa/EstudosJPA/build/classes/_LocadoraService logout 
successful

Porém, em algumas situações nós gostaríamos de desabilitar ou mudar a forma como o log das operações é feito. Para isso podemos usar a propriedade eclipselink.logging.level. Esta propriedade é definida no arquivo persistence.xml como um elemento <property>. Veja:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

<property name="eclipselink.logging.level" value="FINE"/>

Podemos manipular esta propriedade também em tempo de execução. Basta usar um código parecido com:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

// vamos alterar a forma que o EclipseLink registra o log de operações
Map propriedades = new HashMap();
propriedades.put("eclipselink.logging.level", "FINE");
      
// vamos criar o EntityManagerFactory a partir do contexto de persistência
EntityManagerFactory emf = 
  Persistence.createEntityManagerFactory("LocadoraService", propriedades);

Agora o log é muito mais completo, inclusive mostrando os comandos SQL sendo passados da unidade de persistência para o banco de dados e vice-versa:

run:
[EL Config]: metadata: 2013-05-31 12:57:44.346--ServerSession(1630999763)--
Thread(Thread[main,5,main])--The access type for the persistent class [class 
entidades.Cliente] 
is set to [FIELD].
[EL Config]: metadata: 2013-05-31 12:57:44.401--ServerSession(1630999763)--
Thread(Thread[main,5,main])--The alias name for the entity class 
[class entidades.Cliente] is being defaulted to: Cliente.
[EL Config]: metadata: 2013-05-31 12:57:44.438--ServerSession(1630999763)--
Thread(Thread[main,5,main])--The column name for element [id] is being defaulted to: ID.
[EL Config]: metadata: 2013-05-31 12:57:44.441--ServerSession(1630999763)--
Thread(Thread[main,5,main])--The column name for element [email] is being defaulted to: 
EMAIL.
[EL Config]: metadata: 2013-05-31 12:57:44.443--ServerSession(1630999763)--
Thread(Thread[main,5,main])--The column name for element [nome] is being 
defaulted to: NOME.
[EL Info]: 2013-05-31 12:57:45.53--ServerSession(1630999763)--
Thread(Thread[main,5,main])--
EclipseLink, version: Eclipse Persistence Services - 
2.5.0.v20130507-3faac2b
[EL Fine]: connection: 2013-05-31 12:57:45.96--Thread(Thread[main,5,main])--
Detected database platform: org.eclipse.persistence.platform.database.MySQLPlatform
[EL Config]: connection: 2013-05-31 12:57:45.981--ServerSession(1630999763)--
Connection(358669786)--Thread(Thread[main,5,main])--connecting(DatabaseLogin(
	platform=>MySQLPlatform
	user name=> "root"
	datasource URL=> "jdbc:mysql://localhost/estudos"
))
[EL Config]: connection: 2013-05-31 12:57:46.029--ServerSession(1630999763)--
Connection(1099483366)--Thread(Thread[main,5,main])--Connected: 
jdbc:mysql://localhost/estudos
	User: root@localhost
	Database: MySQL  Version: 5.6.11
	Driver: MySQL Connector Java  Version: mysql-connector-java-5.1.25 ( 
Revision: ${bzr.revision-id} )
[EL Info]: connection: 2013-05-31 12:57:46.12--ServerSession(1630999763)--
Thread(Thread[main,5,main])--file:/C:/estudos_jpa/EstudosJPA/build/classes/_
LocadoraService login successful
[EL Fine]: sql: 2013-05-31 12:57:46.208--ClientSession(1475449478)--
Connection(1099483366)--Thread(Thread[main,5,main])--INSERT INTO clientes 
(data_cadastro, EMAIL, NOME) VALUES (?, ?, ?)
	bind => [2013-05-31 12:57:46.171, carlos@arquivodecodigos.net, 
Carlos Augusto Marcelo Ramos]
[EL Fine]: sql: 2013-05-31 12:57:46.284--ClientSession(1475449478)--
Connection(1099483366)--Thread(Thread[main,5,main])--SELECT LAST_INSERT_ID()
[EL Config]: connection: 2013-05-31 12:57:46.342--ServerSession(1630999763)--
Connection(1099483366)--Thread(Thread[main,5,main])--disconnect
[EL Info]: connection: 2013-05-31 12:57:46.343--ServerSession(1630999763)--
Thread(Thread[main,5,main])--file:/C:/estudos_jpa/EstudosJPA/build/classes/_
LocadoraService logout successful
[EL Config]: connection: 2013-05-31 12:57:46.344--ServerSession(1630999763)--
Connection(358669786)--Thread(Thread[main,5,main])--disconnect
Dados gravados com sucesso.
CONSTRUÍDO COM SUCESSO (tempo total: 2 segundos)
É um log realmente enorme, não? É claro que fazemos isso somente em tempo de depuração da aplicação. Quando a colocamos em produção, podemos facilmente desabilitar o log fornecendo o valor "OFF".

Os valores possível para o nível de log no EclipseLink são:

OFF - Desabilita o log. É recomendado quando colocamos a aplicação em produção para evitar a sobrecarga provocada pelo registro de logs.

SEVERE - Faz o log das exceções indicando que o EclipseLink não consegue continuar, assim como quaisquer exceções lançadas durante a autenticação. Inclui o rastreio da pilha (stack trace).

WARNING - Registra os logs que não forçam o EclipseLink a parar, incluindo todas as exceções não registradas com o nível SEVERE. Este nível não inclui o rastreio da pilha (stack trace).

INFO - Padrão. Registra apenas as operações de login/logout por sessão, incluindo o nome de usuário. Uma vez adquirida a sessão, informações detalhadas são registradas.

CONFIG - Faz o log apenas do login, conexão JDBC e informações da base de dados. Este nível é útil durante a fase de implantação (deployment time).

FINE - Registra todos os logs das instruções (comandos) SQL. Este nível é recomendado durante a depuração e testes mas não recomendado após a implantação.

FINER - Similar ao WARNING, mas inclui o rastreio da pilha. Este nível é recomendado durante a depuração e testes mas não recomendado após a implantação.

FINEST - Similar ao FINER, mas inclui informações de nível mais baixo. Este nível é recomendado durante a depuração e testes mas não recomendado após a implantação.

ALL - O mesmo que FINEST.

Link para compartilhar na Internet ou com seus amigos:

Veja mais Dicas e truques de JPA - Java Persistence Architecture API - Arquitetura de Persistência Java

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 29 usuários muito felizes estudando em nosso site.