
Существует несколько вариантов для сохранения логов в текстовые файлы при разработке на языке Ada:
- пакет Ada.Text_IO
 - пакет AWS.Log из библиотеки AWS
 - пакет GNATCOLL.Traces из библиотеки GNAT Component Collection
 - пакет IAL.Log из библиотеки YAMI4
 - пакет Util.Log из библиотеки Ada-Util
 - библиотека Alog
 - библиотека Log4Ada (liblog4ada)
 
Наиболее простым в плане отсутствия зависимостей является использование пакета Ada.Text_IO, который позволяет полноценно работать с текстовыми файлами.
В пакете доступны следующие режимы для открытия или создания файла (параметр Mode):
- In_File - только для чтения
 - Out_File - перезапись с нуля
 - Append_File - создание с нуля или добавление в конец существующего файла
 
Также для работы с логами Ada.Text_IO предлагает процедуры и функции:
Создание файла (+ открытие)
procedure Create ( File : in out File_Type; Mode : File_Mode := Out_File; Name : String := ""; Form : String := "" )Открытие файла (если существует, иначе вызов исключения)
procedure Open ( File : in out File_Type; Mode : File_Mode; Name : String; Form : String := "" )Освобождение файлового дескриптора
procedure Close (File : in out File_Type)Удаление файла
procedure Delete (File : in out File_Type)Возврат логического результата по признаку "Открыт ли файл"
function Is_Open (File : File_Type) return Boolean;
Подводя итог, приведу пример использования Ada.Text_IO с перезаписью лог-файла при каждом запуске программы.
with Ada.Text_IO;
procedure Main is
   --  Описание для файлового дескриптора
   f : Ada.Text_IO.File_Type;
begin
   --  Создание файла в режиме перезаписи
   Ada.Text_IO.Create(
      File => f,
      Mode => Ada.Text_IO.Out_File,
      Name => "my.log"
   );
   --  Запись строки в файл
   Ada.Text_IO.Put_Line(
      File => f,
      Item => "Hello world!"
   );
   --  Освобождение файлового дескриптора
   Ada.Text_IO.Close(File => f);
end Main;
С прочими возможностями пакета Ada.Text_IO можно ознакомиться в спецификации.






