Будучи единственным программистом в семье, Ким Джонсон был так же и единственным специалистом по решению всех технических проблем, начиная от настройки цифровой камеры и заканчивая «на микроволновке мигает 12:00». Очередной звонок и вот он уже разбирается с классической проблемой: «он все виснет и виснет, а на экране вылазят эти сообщения» поразившей компьютер его двоюродного брата. Оставив позади не один десяток наводящих вопросов, Киму удалось выяснить, как выглядело одно из сообщений:

Он автоматически зачитал стандартную лекцию на тему «забил диск барахлом» - понаставил игр, поназагружал музыки где попало, и так далее, но брат заверил его, что компьютер он использовал только для работы с почтой, документами и фотографиями, а игры уже давно все поудалял. Ким понял, что дистанционными методами тут не разобраться, и выехал на объект.

Усевшись за компьютер брата, он проверил диск C, все было нормально. 40 из 120 гигабайт были свободны. Но и 80 гигабайт для обычного, не продвинутого пользователя было многовато, поэтому Ким начал копать глубже.

Осмотрев все папки, Ким, наконец, остановился на C:\Documents and Settings\username\Local settings\temp\. Видимо какой то временный каталог. Он тут же заметил файл LSBurnWatcher.log размером в 75 гигабайт. Так как блокнотом, да и в целом любым другим редактором, такой файл открыть было нельзя, Ким просто его удалил.

Как два байта, проблема решена! Но чтобы убедиться, Ким перезапустил компьютер и снова заглянул во временный каталог. SburnWatcher.log был тут как тут и весил килобайт. Он открыл его в блокноте.

2007-08-25 10:43:43.078: --> Стартую...
2007-08-25 10:43:43.265: Нашел 1 принтер.
2007-08-25 10:43:43.265: IsLightScribePresent(): LightScribe в наличии!
2007-08-25 10:43:43.265: Запускаю WaitForDirChange() ...

Решив, что это какой-то журнал загрузки, Ким опять перезапустил компьютер. Размер файла удвоился.

2007-08-25 10:43:43.078: --> Стартую...
2007-08-25 10:43:43.265: Нашел 1 принтер.
2007-08-25 10:43:43.375: IsLightScribePresent(): LightScribe в наличии!
2007-08-25 10:43:43.485: Запускаю WaitForDirChange() ...
2007-08-25 10:45:31.343: --> Стартую...
2007-08-25 10:45:35.171: Нашел 1 принтер.
2007-08-25 10:45:35.187: IsLightScribePresent(): LightScribe в наличии!
2007-08-25 10:45:35.203: Запускаю WaitForDirChange() ...

Как и в прошлый раз, проблема решилась. Видимо некий программист решил заносить в журнал каждый запуск программы, а удалять файл с журналом не посчитал нужным. Прибавьте к этому год или два перезагрузок, и получите чудовищных размеров журнал.

Но когда Ким уже собрался уходить, до него дошло. Чтобы файл разросся до таких размеров, потребовалось бы триста пятьдесят девять миллионов перезагрузок. Это одна перезагрузка в минуту примерно семь веков подряд.

Ким снова загрузил компьютер и подождал. Как он и думал, через пять минут после загрузки файл начал раздуваться со скоростью в несколько сотен килобайт в секунду. К тому времени как Ким открыл его в блокноте, он уже съел 24 МБ и выглядел так:

2007-08-25 10:43:43.078: --> Стартую...
2007-08-25 10:43:43.265: Нашел 1 принтер.
2007-08-25 10:43:43.375: IsLightScribePresent(): LightScribe в наличии!
2007-08-25 10:43:43.485: Запускаю WaitForDirChange() ...
2007-08-25 10:45:31.343: --> Стартую...
2007-08-25 10:45:35.171: Нашел 1 принтер.
2007-08-25 10:45:35.187: IsLightScribePresent(): LightScribe в наличии!
2007-08-25 10:45:35.203: Запускаю WaitForDirChange() ...
2007-08-25 10:49:42.496: Завершил ожидание через 247 секунд.
2007-08-25 10:49:42.796: Не нашел каталог iTunes.
2007-08-25 10:49:42.796: Запускаю WaitForDirChange() ...
2007-08-25 10:49:42.796: Завершил ожидание через 0 секунд.
2007-08-25 10:49:42.796: Не нашел каталог iTunes.
2007-08-25 10:49:42.796: Запускаю WaitForDirChange() ...
2007-08-25 10:49:42.796: Завершил ожидание через 0 секунд.
2007-08-25 10:49:42.796: Не нашел каталог iTunes.
2007-08-25 10:49:42.796: Запускаю WaitForDirChange() ...
2007-08-25 10:49:42.796: Завершил ожидание через 0 секунд.
2007-08-25 10:49:42.796: Не нашел каталог iTunes.
2007-08-25 10:49:42.796: Запускаю WaitForDirChange() ...
2007-08-25 10:49:42.796: Завершил ожидание через 0 секунд.
2007-08-25 10:49:42.796: Не нашел каталог iTunes.
2007-08-25 10:49:42.796: Запускаю WaitForDirChange() ...

Эти три строчки повторялись примерно 10000 раз. Не зная, что выдумывать дальше, Ким написал простейший BAT файл, который при каждой загрузке компьютера удалял файл с журналом. Наконец проблема была решена окончательно!

Оригинал:http://thedailywtf.com/Articles/The-Really-Big-Log-File.aspx
Перевод:Евгений Виговский