Registrango Log em python

11/03/2019

15

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()
Responder

Posts

13/03/2019

Lorena

Resolvi em outro site, está certo, porém estava salvando na pasta raiz
Responder
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
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira