Pergunta

Aplicação de Nossa RCP registra um pouco justo, mas apenas INFO e acima são saída para o console. No Windows / Linux isso é ok, mas no OSX todos os logs parece ser passado para syslogd, que então decide o que fazer logon e não log, isso significa manipulação de milhares e milhares de mensagens de log FINEST, este faz uso syslogd 140% cpu e gobble memória para cima. Depois de executar nosso aplicativo para cerca de 3 minutos syslogd usos 2,5 GB de memória e de todo o sistema torna-se inutilizável. Matar syslogd / reinicialização é a única cura. Iniciando o aplicativo da consola torna entrar directamente para console, e não há nenhum problema.

Como posso parar syslogd manipulação meu registro de RCP no OSX?

Foi útil?

Solução

Dê uma olhada em arquivo RCP.App/Contents/Info.plist do seu aplicativo RCP. O arquivo padrão gerado pela compilação do produto RCP tem -consoleLog .

Isto pode ser porque tudo acaba em syslogd.

Outras dicas

Eu não estou em todos familiarizados com Eclipse RCP, mas eu tenho alguma experiência com syslog. Você provavelmente está se registrando usando local0 ou local1 como a facilidade. OSX dirige local0.* a /var/log/appfirewall.log e local1 a /var/log/ipfw.log . Se você está conectado a qualquer instalação, em seguida, tudo o que você log vai ser gravados no disco.

Gostaria de começar por primeiro olhando se e como você pode configurar o syslog que a sua candidatura está registrando a. Depois de descobrir que facilidade ele está registrando a, você deve ser capaz de desligá-lo, editando /etc/syslog.conf e enviar o syslog daemon um sinal HUP. Leia as entradas manuais para syslogd e < a href = "http://developer.apple.com/DOCUMENTATION/DARWIN/Reference/ManPages/man5/syslog.conf.5.html" rel = "nofollow noreferrer"> syslog.conf para uma descrição detalhada.

Você também pode querer olhar em usar uma interface de registro mais Java-esque em vez de syslog.

Eu também tenho sido pouco por isso ocasionalmente. Meu palpite é esta:

Se você começar Eclipse através Eclipse.app da área de trabalho, o seu console (stdout / stderr) será redirecionado para o syslog, portanto, qualquer saída por si só Eclipse (ou plugins usando printf) vai acabar lá.

Tente invocar ./eclipse no Terminal.app e veja se você receber mensagens na janela de terminal em vez disso, e não ao syslog.

No entanto, este de couse não resolve o problema que você realmente não quer que nenhum deles em primeiro lugar ... Descubra quem está produzindo a saída, e torná-los colocá-lo no ErrorLog vez.

Infelizmente, eu já não sei onde isto aconteceu para mim, então eu não posso testá-lo. Boa sorte!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top