Bom dia! Por que o comando ConOut causa aviso "Code Smell" no SonarQube?
Bom dia! Por que o comando ConOut causa aviso "Code Smell" no SonarQube?
Olá, boa tarde. O ConOut envia uma informação de forma síncrona para o console, o que causa perda de performance por tratar-se de escrita em disco. Desta maneira a execução da sua rotina só continua após a escrita do console. O ideal é substituir pela FWLogMsg, que junto com um servidor de logs gera a informação de forma assíncrona.
Bom dia!
Deodato, com o uso da FWLogMsg sem o servidor de log (logserver.exe) temos o mesmo comportamento da ConOut ?
Ou seja, se usar FwLogMsg sem o servidor de log ainda temos a informação de forma síncrona para o console, o que causa perda de performance por tratar-se de escrita em disco ?
Agradecido!
— Luciano S. de Souza 26 de Oct de 2018Sim. Porém para que seja listado em console é necessário ligar uma chave no appserver.ini. Nativamente ele não é printado. Mas caso a chave seja ligada haverá perda de performance.
— Jandir Deodato 26 de Oct de 2018E como vejo as mensagem enviada para o servidor de log? existe alguma tela, rotina para isso?
— Sergio Martinez Martinez 05 de Nov de 2018Sérgio, para verificar você pode usar qualquer leitor de mercado para isso ou ainda incluir no sqllite e realizar a visualização. Não existe ainda um leitor Totvs para isto.
— Jandir Deodato 06 de Nov de 2018Jandir, tem exemplo FwLogMSG ?
Documentação TDN não ajudou muito...
FWLogMsg("INFO","LAST","ENVIRONMENT","START","DDL","DROP","Não foi possível realizar o drop"), onde INFO - Identifica que é uma info; LAST - para informar que deve ser utilizado o mesmo ID para a informação (normalmente se envia last, pois ele é um identificador único da informação e não faria muito sentido trocar, a menos que o processo realizado fosse outro); ENVIRONMENT - O agrupador que a gente definiu para qualquer coisa que esteja sendo realizada dentro do ambiente, por exemplo;
— Jandir Deodato 06 de Nov de 2018START - A categoria que a gente definiu para qualquer coisa rodada na inicialização do ambiente; STEP - Indica o passo do processo. No nosso caso definimos como DDL; DROP - O identificador da nossa mensagem e por fim a mensagem em si.
— Jandir Deodato 06 de Nov de 2018