Domanda

La nostra applicazione RCP registra un bel po ', ma solo INFO e soprattutto vengono emessi per consolare. Su Windows / Linux questo è ok, ma su OSX tutta la registrazione sembra essere passato a syslogd, che decide allora che cosa per accedere e non registra, questo significa gestire migliaia e migliaia di messaggi di log FINEST, questo rende l'uso syslogd 140% della CPU e trangugiare la memoria. Dopo aver eseguito la nostra applicazione per circa 3 minuti syslogd utilizza 2,5 GB di memoria e di tutto il sistema diventa inutilizzabile. Uccidere syslogd / riavvio è l'unica cura. A partire l'applicazione da console rende accedere direttamente alla console e non c'è nessun problema.

Come posso smettere di syslogd gestire la mia registrazione RCP su OSX?

È stato utile?

Soluzione

Date un'occhiata al file di RCP.App/Contents/Info.plist del RCP applicazione. Il file di default generato dalla costruzione del prodotto RCP ha -consoleLog .

Questo può essere il motivo per cui tutto ciò che finisce in syslogd.

Altri suggerimenti

Io non sono affatto familiarità con Eclipse RCP, ma ho una certa esperienza con syslog. Probabilmente si sta accede utilizzando local0 o local1 come l'impianto. OSX dirige local0.* a /var/log/appfirewall.log e syslogd a /var/log/ipfw.log . Se si esegue l'accesso a uno stabilimento, allora tutto si accede sta per essere scritti su disco.

Vorrei iniziare prima guardare se e come è possibile configurare lo syslog che l'applicazione tiene i log. Una volta a capire quale impianto si tiene i log, si dovrebbe essere in grado di spegnerlo modificando /etc/syslog.conf e l'invio del demone syslog un segnale HUP. Leggere le voci manuali per syslog.conf e <=> per un una descrizione dettagliata.

Si potrebbe anche voler considerare di usare un altro Java-esque interfaccia di registrazione al posto di syslog.

Sono stato anche a poco a questo di tanto in tanto. La mia ipotesi è questa:

Se si avvia Eclipse attraverso Eclipse.app dal desktop, la sua console (output / error) verrà reindirizzato al syslog, in modo che qualsiasi uscita da Eclipse per sé (o plugin utilizzando printf) finirà lì.

Prova invocando ./eclipse nel Terminal.app e vedere se si ottiene i messaggi nella finestra del terminale, invece, e non al syslog.

Tuttavia, questo di couse non risolve il problema che in realtà non si vuole nessuno dei due, in primo luogo ... Scopri chi sta producendo l'uscita, e renderli messo nel ErrorLog invece.

Purtroppo, non so più dove questo è accaduto per me, quindi non posso provarlo. Buona fortuna!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top