Problema com Hibernate na conexão

Está é minha classe de usuário:

package br.prv.modelo;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;

@Entity
public class Usuarios {

//atributos

@Id
private String matricula;

//este campo nao pode receber valores nulo (nullable = false) e tem o tamanho 60
@Column (name = "login",nullable = false, length = 60)
private String login;

@Column (name = "senha",nullable = false, length = 20)
private String senha;

@Column	(name = "niveldeacesso",nullable = false, length = 20)
private int nivelDeAcesso;

//getter e setter
public String getMatricula() {
	return matricula;
}
public void setMatricula(String matricula) {
	this.matricula = matricula;
}
public String getLogin() {
	return login;
}
public void setLogin(String login) {
	this.login = login;
}
public String getSenha() {
	return senha;
}
public void setSenha(String senha) {
	this.senha = senha;
}
public int getNivelDeAcesso() {
	return nivelDeAcesso;
}
public void setNivelDeAcesso(int nivelDeAcsso) {
	this.nivelDeAcesso = nivelDeAcsso;
}

}



Está é minha classe daoUsuario:

package br.prv.dao;

import java.util.List;
import javax.management.Query;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import javax.persistence.Persistence;

import br.prv.modelo.Usuarios;

public class DaoUsuario {

private EntityManagerFactory fabrica;
private EntityManager gerente;
private EntityTransaction transacao;

public DaoUsuario() {
	fabrica = Persistence.createEntityManagerFactory("conexao");
	gerente = fabrica.createEntityManager();
	fabrica.close();

} 

//inicio do metodo incluir

public void incluir(Usuarios usuario){
	try {
		//instanciei uma nova transacao
		transacao = gerente.getTransaction();
		//iniciei a transacao
		transacao.begin();

		System.out.println("Usuário salvo com sucesso!");
		if (usuario.getMatricula() == null) {

			//operacao de insercao
			gerente.persist(usuario);

			//Atualiza dados do usuario
		} else {
			usuario = gerente.merge(usuario);
		}
		//finalizo a transacao
		transacao.commit();
	} catch (Exception e) {
		e.printStackTrace();
		System.out.println("Erro na inclusão do usuário." +e);

	}
} 

//final do metodo incluir

//inicio do metodo excluir

public void excluir(String matricula){


	try {
		//instanciei uma nova transacao
		transacao = gerente.getTransaction();
		//iniciei a transacao
		transacao.begin();
		System.out.println("Usuário excluído com sucesso!");
		//consulta o usuario através da sua matricula
		Usuarios usuario = gerente.find(Usuarios.class, matricula);
		System.out.println("Excluindo os dados de: " + usuario.getLogin());
		//exclui o usuario da base de dados
		gerente.remove(usuario);
		gerente.getTransaction().commit();
	} catch (Exception e) {

		System.out.println("Erro ao excluir usuário."+e);
	}

	//final do metodo excluir

}

//inicio do metodo consultar

public Usuarios consultarPorMatricula(String matricula){


	transacao = gerente.getTransaction();
	Usuarios usuario = null;
	try {
		usuario = gerente.find(Usuarios.class, matricula);
		System.out.println("Usuário: " +usuario.getLogin() + " , "+ "Matrícula:" + usuario.getMatricula() + " , " + "Nível de Acesso:" + usuario.getNivelDeAcesso());
	} catch (Exception e) {

		System.out.println("Erro ao localizar o usuário: "+e);
	}
	return usuario;

}

//inicio do metodo listar usuarios
@SuppressWarnings("rawtypes")
public List<Usuarios> obterUsuarios(){

	transacao = gerente.getTransaction();
	List<Usuarios> usuario = null;
	try {
		String query = "select * from processosceref.tb_usuarios";
		Query q = (Query) gerente.createNativeQuery(query);
		@SuppressWarnings("unused")
		List lista = ((javax.persistence.Query) q).getResultList();
	} catch (Exception e) {

		System.out.println("Erro ao localizar o usuário: "+e);
	}
	return usuario;

}

//final do metodo listar usuarios

//inicio do metodo alterar
public void alterar(Usuarios usuarios){

	transacao = gerente.getTransaction();
	transacao.begin();
	try {
		Usuarios u = gerente.merge(usuarios);
		System.out.println(u);
		transacao.commit();
	} catch (Exception e) {

		System.out.println("Erro ao localizar o usuário: "+e);
	}

}

}


Está é minha persistence.xml

<?xml version="1.0" encoding="UTF-8"?>

org.hibernate.ejb.HibernatePersistence

Este é o Erro.

log4j:WARN No appenders could be found for logger (org.hibernate.cfg.annotations.Version).
log4j:WARN Please initialize the log4j system properly.
Exception in thread “main” javax.persistence.PersistenceException: No Persistence provider for EntityManager named conexao
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:56)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:34)
at br.prv.dao.DaoUsuario.(DaoUsuario.java:21)
at br.prv.main.main.main(main.java:16)

altere

acredito que seja esse o problema