Registrango Log em python
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
Curtidas 1
Respostas
Lorena
11/03/2019
Resolvi em outro site, está certo, porém estava salvando na pasta raiz
GOSTEI 0
Aylan Boscarino
11/03/2019
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:
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í :)
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í :)
GOSTEI 0