Eclipse RCP em OSX - Como parar o log para o syslog?
-
21-08-2019 - |
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?
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
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!