Boa tarde Eduardo,
Analisando sua necessidade (e de situações encontradas em sistemas em que efetuei manutenção), tenho as seguintes sugestões:
1 - Qual o banco q vc esta usando? Caso seja Postgres vc pode criar um schema dentro do seu banco específico para logs. No entanto, ainda assim o seu banco irá crescer bastante e vc terá problemas com backups e administração em geral. Então, vc pode criar um outro banco específico para logs. Ainda q ele seja grande, ao menos vc teria um tamanho específico para log e outro diferente para aplicação.
2 - Vc pode criar uma abordagem de logs em arquivos (.txt, .ini ou até mesmo .yml). A desvantagem disso é q vc n teria a vantagem de um banco de dados relacional e nem utilizaria SQL. Basicamente, vc teria q trabalhar isso na forma de salvar no arquivo e para leitura, na linguagem de programação que vc utiliza. Geralmente, utiliza-se array's e strings para leitura e escrita nesses tipos de arquivos. Existem algumas classes na net que auxiliam nesse trabalho (sobretudo, para arquivos yml e .ini). Eu possuo uma lib para arquivos .ini muito parecida com a classe Properties do Java.
A vantagem é q dessa forma vc n se preocuparia tanto com o tamanho e poderia trabalhar com compactação(.rar, gzip, .tar e etc...) e obviamente, utilizar técnicas de backup de tempos em tempos desses arquivos.
3 - Utilizar um banco SQLITE para salvar os logs...teria a vantagem de utilzar SQL e este banco é basicamente um arquivo!. Tanto q na conexão dele vc aponta onde o seu arquivo se encontra. N sei até q ponto os arquivos do SQLITE podem ser compactados e se o nivel de compactação dele é bom (so testando)
Sobre dividir as ações...é interessante, ter uma tabelão com váááriossss registros pode ser um problema em algumas situações (isso tbm serve para logs em arquivos).
Bom...fica as dicas. Por favor, leia com calma e nos dê um feedback sobre o q vc achou e qual a escolhida
--
Atenciosamente

Analista de Sistemas Jr
71 8767-6515www.vidacriativa.com.br