Gravar no arquivo de log

Gravar no arquivo de log

Quero escrever algumas coisas no arquivo de log. Qual é a melhor prática para isso? É \message{}ou \typeout{}o quê?

Responder1

O comando Plain TeX \wlogtambém está disponível em LaTeX

\wlog{This will be written in the log file}

A macro \wlogse expande para \immediate\write-1e, por regra, o argumento será escrito apenas no arquivo de log e não aparecerá no terminal.


Quando \writeé seguido por um número entre 0 e 15 (incluído), a operação de gravação é feita no fluxo de saída com esse número se aberto no momento em que a gravação é realizada (imediatamente ou quando a rotina de saída está em ação, conforme \immediateprecede \writeou não). Se o fluxo de saída não estiver abertoouo número não é negativo, o argumento \writeé escrito no terminal e no arquivo de log. Por outro lado, quando o número é negativo, o argumento é escrito apenas no arquivo de log.

Exceção: na maioria das distribuições TeX, \write18passa o argumento para o sistema operacional, desde que o escape do shell esteja habilitado (possivelmente em modo restrito, consulte o manual do TeX Live ou MiKTeX).

O comando LaTeX \typeoutfaz isso \immediate\write\@unused, então ele grava o argumento no terminal e no arquivo de log. Não existe um comando predefinido deste tipo no Plain TeX. Na verdade, \typeouttambém dá \protectum significado adequado para lidar com comandos frágeis no argumento. O \@unusedfluxo não está atribuído permanentemente a um arquivo.

Também \messagegrava no terminal e no arquivo de log, mas não força uma nova linha, o que é feito quando \writea saída é direcionada para o arquivo de log.

informação relacionada