Записать в лог-файл

Записать в лог-файл

Я хочу записать некоторые вещи в файл журнала. Какова лучшая практика для этого? Это \message{}или \typeout{}или что?

решение1

Команда Plain TeX \wlogдоступна также в LaTeX.

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

Макрос \wlogрасширяется до \immediate\write-1, и по правилу аргумент будет записан только в файл журнала и не появится в терминале.


Если \writeза следует число от 0 до 15 (включительно), операция записи выполняется в выходном потоке с этим номером, если он открыт в момент выполнения записи (немедленно или когда выполняется процедура вывода, в зависимости от того, \immediateпредшествует он \writeили нет). Если выходной поток не открытиличисло неотрицательное, аргумент \writeзаписывается на терминал и в файл журнала. И наоборот, когда число отрицательное, аргумент записывается только в файл журнала.

Исключение: в большинстве дистрибутивов TeX \write18аргумент передается операционной системе при условии, что включен выход из оболочки (возможно, в ограниченном режиме, см. руководство TeX Live или MiKTeX).

Команда LaTeX \typeoutделает \immediate\write\@unused, поэтому она записывает аргумент и в терминал, и в файл журнала. В Plain TeX нет предопределенной команды такого рода. Indeed \typeoutтакже дает \protectподходящее значение для обработки хрупких команд в аргументе. \@unusedПоток постоянно не назначен файлу.

Также \messageзаписывает и в терминал, и в файл журнала, но не создает новую строку, что происходит при \writeнаправлении вывода в файл журнала.

Связанный контент