[RESOLVIDO] Ajuda configurando o log4j

3 respostas
B

Boa tarde,

baixar o arquivo apache-log4j-2.0-alpha2-bin.tar.gz

Extrai e adicionei todos os .jar ao meu projeto.

Crie uma Source Folder na raiz do projeto. Nela coloquei o log4j.properties, com as seguintes configurações:

log4j.rootCategory=INFO, CONSOLE
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%r [%t] %-5p %c - %m%n

Verificando no banco, o sistema persiste normalmente, mas no console não aparece o log, mas percebi um erro, segue o resultado do console:

02/09/2012 13:34:31 org.hibernate.annotations.common.Version <clinit>
INFO: HCANN000001: Hibernate Commons Annotations {4.0.1.Final}
02/09/2012 13:34:31 org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {4.1.3.Final}
02/09/2012 13:34:31 org.hibernate.cfg.Environment <clinit>
INFO: HHH000206: hibernate.properties not found
02/09/2012 13:34:31 org.hibernate.cfg.Environment buildBytecodeProvider
INFO: HHH000021: Bytecode provider name : javassist
02/09/2012 13:34:31 org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000402: Using Hibernate built-in connection pool (not for production use!)
02/09/2012 13:34:31 org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000115: Hibernate connection pool size: 20
02/09/2012 13:34:31 org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000006: Autocommit mode: true
02/09/2012 13:34:31 org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000401: using driver [org.postgresql.Driver] at URL [jdbc:postgresql://localhost:5432/dbfundamentos]
02/09/2012 13:34:31 org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000046: Connection properties: {user=postgres, password=****, autocommit=true, release_mode=auto}
02/09/2012 13:34:32 org.hibernate.dialect.Dialect <init>
INFO: HHH000400: Using dialect: org.hibernate.dialect.PostgreSQL81Dialect
02/09/2012 13:34:32 org.hibernate.engine.jdbc.internal.LobCreatorBuilder useContextualLobCreation
INFO: HHH000424: Disabling contextual LOB creation as createClob() method threw error : java.lang.reflect.InvocationTargetException
02/09/2012 13:34:32 org.hibernate.engine.transaction.internal.TransactionFactoryInitiator initiateService
INFO: HHH000268: Transaction strategy: org.hibernate.engine.transaction.internal.jdbc.JdbcTransactionFactory
02/09/2012 13:34:32 org.hibernate.hql.internal.ast.ASTQueryTranslatorFactory <init>
INFO: HHH000397: Using ASTQueryTranslatorFactory
02/09/2012 13:34:32 org.hibernate.search.Version <clinit>
INFO: HSEARCH000034: Hibernate Search 4.1.1.Final
02/09/2012 13:34:32 org.hibernate.search.impl.ConfigContext getLuceneMatchVersion
WARN: HSEARCH000075: Configuration setting hibernate.search.lucene_version was not specified, using LUCENE_CURRENT.
02/09/2012 13:34:32 org.hibernate.tool.hbm2ddl.SchemaUpdate execute
INFO: HHH000228: Running hbm2ddl schema update
02/09/2012 13:34:32 org.hibernate.tool.hbm2ddl.SchemaUpdate execute
INFO: HHH000102: Fetching database metadata
02/09/2012 13:34:32 org.hibernate.tool.hbm2ddl.SchemaUpdate execute
INFO: HHH000396: Updating schema
02/09/2012 13:34:32 org.hibernate.tool.hbm2ddl.TableMetadata <init>
INFO: HHH000261: Table found: public.tbendereco
02/09/2012 13:34:32 org.hibernate.tool.hbm2ddl.TableMetadata <init>
INFO: HHH000037: Columns: [cidade, bairro, complemento, cep, uf, idendereco, logradouro, numero]
02/09/2012 13:34:32 org.hibernate.tool.hbm2ddl.TableMetadata <init>
INFO: HHH000108: Foreign keys: []
02/09/2012 13:34:32 org.hibernate.tool.hbm2ddl.TableMetadata <init>
INFO: HHH000126: Indexes: [tbendereco_pkey]
02/09/2012 13:34:32 org.hibernate.tool.hbm2ddl.SchemaUpdate execute
INFO: HHH000232: Schema update complete
EnderecoHermenegildo Gomes de CastroGravado com Sucesso
/code]

O erro que apareceu:

[code]INFO: HHH000424: Disabling contextual LOB creation as createClob() method threw error : java.lang.reflect.InvocationTargetException

Mas acho que não tem nada a ver com o Logger.

Alguém pode me ajudar? Configurei o Logger de maneira errada?

Grato.

3 Respostas

J

Boa Noite,

Deve ser um problema no arquivo de configurações do Hibernate.

Da uma verificada nesse post http://stackoverflow.com/questions/9545693/how-to-fix-error-with-my-first-hibernate-project

K

Você precisa informar ao Hibernate como irá tratar os seus campos BLOB, CLOB.

A sua solução é:

setar para false a  propriedade hibernate.temp.use_jdbc_metadata_defaults

abcs.

B

Se eu seto para false, acontece o seguinte erro:

11/09/2012 20:59:08 org.hibernate.annotations.common.Version <clinit>
INFO: HCANN000001: Hibernate Commons Annotations {4.0.1.Final}
11/09/2012 20:59:08 org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {4.1.3.Final}
11/09/2012 20:59:08 org.hibernate.cfg.Environment <clinit>
INFO: HHH000206: hibernate.properties not found
11/09/2012 20:59:08 org.hibernate.cfg.Environment buildBytecodeProvider
INFO: HHH000021: Bytecode provider name : javassist
11/09/2012 20:59:09 org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000402: Using Hibernate built-in connection pool (not for production use!)
11/09/2012 20:59:09 org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000115: Hibernate connection pool size: 20
11/09/2012 20:59:09 org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000006: Autocommit mode: true
11/09/2012 20:59:09 org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000401: using driver [org.postgresql.Driver] at URL [jdbc:postgresql://localhost:5432/dbfundamentos]
11/09/2012 20:59:09 org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure
INFO: HHH000046: Connection properties: {user=postgres, password=****, autocommit=true, release_mode=auto}
Exception in thread "main" java.lang.ExceptionInInitializerError
	at br.com.factory.EnderecoDao.<init>(EnderecoDao.java:16)
	at br.com.controller.ClienteController.getEndereco(ClienteController.java:27)
	at br.com.controller.ClienteController.getCliente(ClienteController.java:69)
	at br.com.modelo.beans.Main.main(Main.java:22)
Caused by: javax.persistence.PersistenceException: [PersistenceUnit: dbFundamentosJPAPU] Unable to build EntityManagerFactory
	at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:915)
	at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:890)
	at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:57)
	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:63)
	at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:47)
	at br.com.factory.ConnectionFactory.<clinit>(ConnectionFactory.java:12)
	... 4 more
Caused by: org.hibernate.HibernateException: Connection cannot be null when 'hibernate.dialect' not set
	at org.hibernate.service.jdbc.dialect.internal.DialectFactoryImpl.determineDialect(DialectFactoryImpl.java:97)
	at org.hibernate.service.jdbc.dialect.internal.DialectFactoryImpl.buildDialect(DialectFactoryImpl.java:67)
	at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:178)
	at org.hibernate.service.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:75)
	at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:159)
	at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:131)
	at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:71)
	at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2277)
	at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2273)
	at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1742)
	at org.hibernate.ejb.EntityManagerFactoryImpl.<init>(EntityManagerFactoryImpl.java:94)
	at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:905)
	... 9 more

Minha configurações:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
  <persistence-unit name="dbFundamentosJPAPU" transaction-type="RESOURCE_LOCAL">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <class>br.com.modelo.beans.cliente.Endereco</class>
    <class>br.com.modelo.beans.cliente.Telefone</class>
    <class>br.com.modelo.beans.cliente.Cliente</class>
    <class>br.com.modelo.beans.pedido.Pedido</class>
    <class>br.com.modelo.beans.pedido.PedidoItem</class>
    <class>br.com.modelo.beans.pedido.TipoItem</class>
    
    <properties>
      <property name="hibernate.connection.username" value="postgres"/>
      <property name="hibernate.connection.driver_class" value="org.postgresql.Driver"/>
      <property name="hibernate.connection.password" value="senha"/>
      <property name="hibernate.connection.url" value="jdbc:postgresql://localhost:5432/dbfundamentos"/>
      <property name="hibernate.temp.use_jdbc_metadata_defaults" value="false"/>
      <property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider"/>
      <property name="hibernate.hbm2ddl.auto" value="update"/>
      
    </properties>
  </persistence-unit>
</persistence>
Criado 2 de setembro de 2012
Ultima resposta 11 de set. de 2012
Respostas 3
Participantes 3