Отлично. Первый есть.
Думаю, что делать, всё-таки, стоит на базе библиотечного компонента. Я начал (очень медленно) допиливать.
На первой, как руки дойдут, добавлю ротацию и режим доступа, затем выложу.
Ваш лог, пока что, бегло просмотрел.
Порадовало:
log<<'Global variable x is '<< x <<endl;
Думаю, всё-таки, что Паскаль, не C++ и потоки вв эмулировать не лучшая идея.
В принципе, впилить перегрузку операторов возможно, но только с {$ifdef fpc}.
Потому что:
1. В идеале, неплохо бы сделать совместимость и с Delphi (и с TP 7
).
2. Всё-таки, стоит ориентироваться на Паскаль.
Если кто хочет использовать операторы, конечно, пожалуйста.
Но, думаю, что их стоит оставить только как дублирование обычных функций.
3. Не все знают C++, а перегрузка операторов - серьёзное изменение семантики, с точки зрения пользователя.
К тому же, ещё и изменение синтаксиса языка. В Паскале нет оператора <<. Плюс, модификаторы.
Это достаточно сложно.
Аналогично с шаблонами.
Потом, а стоит ли делать наследование от TComponent (TEventLog также от него, но я сейчас сделал напрямую от TObject и нормально)?
И должен ли лог выбрасывать исключения?
Добавлено спустя 7 минут 13 секунд:yurgel писал(а):включается автоматически при добавлении в юзес.
Предлагаю включать автоматически, при вызове любой функции логирования, а не при включении.