Проблема с логами, что они не специфицированы, от слова - совсем. Формат файлов логов разный в зависимости от системы логирования, syslog делает одно, rsyslog делает второе, апач- третье, и т.д. причем еще есть ротация этих логов, которая запускается по крону (обычно).
Так что боюсь, парсер логов придется писать самому, либо поискать готовую библиотеку на c/c++. На ум библиотек не приходит, но есть программы-собиратели логов типа logstash, которые могут преобразовывать логи к какому-то единому знаменателю и кидать например в базу данных. Так вот из базы данных логи легче всего выдернуть, тем более на C.