Registrango Log em python

11/03/2019

0

Olá, quando coloco para não salvar em arquivo, só exibir, exibe certinho no console, porém quando adiciono filename para salvar, não salva o registro, poderiam me ajudar?.

logging.basicConfig(filename= 'meuLog.txt', level=logging.DEBUG, format='%(asctime)s %(levelname)s %(funcName)s => %(message)s')

        uid = 'usuario'  # usuário
        pwd = 'senha'  # senha
        db_temp = 'xxx'  # string de conexão do Oracle, configurado no
        # cliente Oracle, arquivo tnsnames.ora

        connection = cx_Oracle.connect(uid + "/" + pwd + "@" + db_temp)  #cria a conexão
        cursor = connection.cursor()  # cria um cursor

        ncidade = cursor.execute('SELECT NM_ALIAS FROM tabela WHERE codop= ' + codcidade)
        self.result = cursor.fetchone()  # busca o resultado da consulta



        if self.result == None:
            print 'Nenhum Resultado'
            logging.debug('Não encontrou a base, verifique o codoperadora')
            exit
        else:
            logging.debug('Base localizada pela operadora')
            while self.result:
                print self.result[0]
                self.nomebase = self.result[0]
                self.result = cursor.fetchone()
Lorena

Lorena

Responder

Posts

13/03/2019

Lorena

Resolvi em outro site, está certo, porém estava salvando na pasta raiz
Responder

13/03/2019

Aylan Boscarino

Fala aí Lorena, tudo bem?

Me parece que o seu código é o trecho de um método de alguma classe, dito isso eu analisei seu código da melhor forma e pude e asseri que o seu uso da biblioteca logging está correto e eu consigo criar novos registros no arquivo de log com a basicConfig que você criou.

O que me pareceu um problema foi a forma como você está utilizando a biblioteca cx_Oracle. Não sei exatamente qual versão você está utilizando, porém na última versão estável o método cursor.execute não retorna um valor, então o atributo result vai estar sempre vazio, o resultado fica armazenado no cursor e você pode realizar um for loop dentro dele:

for nm_alias in cursor:
    logging.debug(nm_alias)


Mas

Por fim, eu reparei em como você está utilizando a declaração print como no Python 2.x, se você estiver usando o Python 3.x ela não vai funcionar porque ele precisa ser declarado como função print(nm_alias), o mesmo para a função exit(). Se você estiver usando o Python 2.x mesmo pode estar esbarrando com alguns problemas legados e de compatibilidade com as bibliotecas que você está usando.

Se houver alguma mensagem de erro no terminal cola aqui no comentário, elas sempre contém dicas do que está dando errado.

Qualquer dúvida estamos aí :)

Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar