Pregunta

Nuestra aplicación RCP registra un poco justo, pero sólo INFO y encima se emiten a la consola. En Windows / Linux esto está bien, pero en OSX toda la tala parece ser pasado a syslogd, que luego decide qué registro y que no ingrese, esto significa el manejo de miles y miles de mensajes de registro máxima expresión, esto hace que el uso syslogd 140% de la CPU y engullir la memoria. Después de ejecutar nuestra aplicación durante unos 3 minutos syslogd utiliza 2,5 GB de memoria y todo el sistema se vuelve inutilizable. Matando a syslogd / reinicio es la única cura. A partir de la aplicación de la consola hace que ingrese directamente a la consola, y no hay ningún problema.

¿Cómo puedo dejar de syslogd manejo de mi registro de RCP en OSX?

¿Fue útil?

Solución

Tome un vistazo a RCP.App/Contents/Info.plist archivo de su aplicación RCP. El archivo predeterminado generado por la acumulación de productos PCR tiene -consoleLog .

Esto puede ser por eso que todo termina en syslogd.

Otros consejos

No estoy familiarizado con Eclipse RCP, pero tengo algo de experiencia con syslog. Es probable que esté iniciando sesión usando local0 o local1 como la instalación. OSX dirige local0.* a /var/log/appfirewall.log y syslogd a /var/log/ipfw.log . Si se conecta a cualquiera de las instalaciones, entonces todo lo que inicia la sesión va a ser escrito en el disco.

Me gustaría empezar por mirar primero si y cómo se puede configurar el syslog que su solicitud está registrando a. Una vez que averiguar qué instalación es que lo almacena, debe ser capaz de apagarlo mediante la edición de /etc/syslog.conf y el envío del demonio syslog una señal HUP. Leer las entradas manuales para syslog.conf y <=> para una Descripción detallada.

También puede ser que desee ver en el uso de una interfaz de registro más al estilo de Java en lugar de syslog.

También he sido poco a esto de vez en cuando. Mi opinión es la siguiente:

Si se inicia a través de Eclipse Eclipse.app desde el escritorio, su consola (stdout / stderr) será redirigido a registro del sistema, por lo que cualquier salida por sí mismo Eclipse (o plugins usando printf) va a terminar allí.

Trate de invocar ./eclipse en el Terminal.app y ver si aparecen mensajes en la ventana de terminal en su lugar, y no al registro del sistema.

Sin embargo, esto de Couse no resuelve el problema de que en realidad no quiere que ninguno de ellos en el primer lugar ... Para saber quién está produciendo la salida, y hacer que se ponen en el registro de errores en su lugar.

Por desgracia, ya no sé donde esto sucedió para mí, así que no puedo probarlo. Buena suerte!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top