Как уже объясняли другие, природа лог-файлов такова, что нельзя получить не по порядку записи, независимо от того, что происходит с временными метками. Проблема, которую вы предполагаете, заключается в двусмысленности, когда плохо выбранный механизм временных меток не может однозначно обозначить один момент времени.
Из-за этого бедному системному администратору, читающему журналы, трудно определить, когда все произошло. По факту, запись журнала, которая (скажем) имеет временную метку Apr 3 02:14:57
, не указывает, является ли это местным временем или UTC, или (предположим для примера, что это местное время, и конкретно австралийское восточное время), является ли это 02:14:57 AEST или 02:14:57 AEDT.
Но это означает несправедливое предположение, что существует такая единая вещь, как "файлы журналов Linux". Не все файлы журналов работают одинаково, и люди отходят от этого типа временных меток с 1980-х годов.
Например: Те из нас, кто использует daemontools и ему подобные в течение многих лет, имеют файлы журналов Linux, которые используют временные метки TAI64N. Запись в журнале выглядит так:
@40000000577d024d2d10bb6d Hello there!
Длинная строка шестнадцатеричных цифр - это временная метка TAI64N. Это не что иное, как 64-битный счетчик секунд с момента в очень далеком прошлом (262 секунды до 1970-01-01 00:00:00 по международному атомному времени), за которым следует 32-битный счетчик наносекунд.
TAI не имеет различных вариантов часовых поясов. В нем даже нет повторяющихся "високосных" секунд. Каждая секунда имеет уникальное фиксированное число.
И действительно, обработка этих временных меток в читаемое человеком местное время - это именно работа программы tai64nlocal
:
jdebp % echo @40000000577d024d2d10bb6d Hello there\! | TZ=UTC0 tai64nlocal 2016-07-06 13:05:45.756071277 Hello there! jdebp % echo @40000000577d024d2d10bb6d Hello there\! | TZ=PST8PDT tai64nlocal 2016-07-06 06:05:45.756071277 Hello there! jdebp %
Часовые пояса и изменения DST не оказывают никакого влияния на мои "файлы журнала Linux", и я могу читать файлы журнала в любом часовом поясе, в каком захочу. (Я также могу делать такие вещи, как объединение нескольких файлов журналов в один с помощью опции sort
-m
)