¿Cómo escribir una aplicación C / C ++ que escribe en un directorio / var / log / myapp?

Fondo

En sistemas Linux,Registros de aplicaciones existen en subdirectorios de/var/log, que es propiedad deroot/root y tiene 755 permisos en mi sistema. Por ejemplo, veo/var/log/mysql y/var/log/samba.

Pregunta

Si quiero unmyapp para poder escribir en un/var/log/myapp, cuál es elforma canónica de lograr esto en C / C ++?

Pensamientos

Tengo que hacer algo loco comosetuid root si no quierosudo a_setup_script.sh? Tenga en cuenta que soy consciente de lasyslog rutinas, pero son insuficientes para mis necesidades (necesito registrar mucha más información, separada en diferentes archivos, de ahí la necesidad del subdirectorio).

¿Debo buscar en una combinación de empaquetado de Ubuntu (para configurar el directorio) y dirigir el archivo IO al subdirectorio (pormyapp)?

Me gustaría seguir los estándares tanto como sea posible.

Apéndice

Se me olvidó mencionar,myapp es en realidad un proceso daemon (un servidor que escucha a los clientes), por lo que no sería tan malo tener unmyapp_user que realmente ejecuta / inicia el proceso.

RESPONDER

Para Ubuntu, la mejor solución parece serrsyslog, un poderoso y moderno reemplazo parasyslog. Generará archivos / directorios según sea necesario, tiene un lenguaje incorporado para enrutamiento flexible desyslog entradas, y utiliza el simple, antiguosyslog API en el nivel C / C ++. Para almacenar información de enrutamiento, puede definir su propia codificación del mensaje de texto en C / C ++, junto con unarsyslog.conf Para manejar la decodificación.

Respuestas a la pregunta(1)

Su respuesta a la pregunta