Como desabilitar / definir o nível de registro / preferências PER do aplicativo Mac OS X?

4

Acho que os logs syslogd "Cosole" do meu Mac ficam inutilizáveis quando algum aplicativo mal escrito ( PathFinder.app neste caso) incessantemente aparece no syslogd o dia todo .. Eu li em algum lugar que você poderia desabilitar o log PER app by ..

  1. Criando um alias para o pacote executável dentro do App "package", e SOMENTE lançando esse alias FROM do terminal. O processo foi ... Navegue até /Aplicativos/ObnoxiousLogger.app, clique com o botão direito, "Mostrar conteúdo do pacote" e, em seguida, navegue até ...

    /Applications/ObnoxiousLogger.app/Contents/MacOS/ObnoxiousLogger

    Em seguida, você cria o alias por meio da GUI e lembre-se de sempre iniciar o aplicativo a partir desse alias, novamente APENAS via terminal.

    Isso é chato, já que você tem que criar o alias através do Finder (o symlinking não funciona, e não há como criar um alias através do terminal ). E se for lançado de qualquer outra forma, você estará de volta à estaca zero, logorrhea . Este método funcionou, mas por um curto período de tempo.

  2. Parece que você poderia definir isso por meio de um comando launchctl , ou uma variável plist, mas este não é um aplicativo aberto pelo launchd, e a documentação do launchd é tão sobre o lugar, mas eu acho que isso é uma possibilidade, suponho.

  3. Eu vi algo sobre o envio do log para / dev / null, mas não ficou claro se era algum tipo de pipe syslogd, ou comando, ou uma configuração /etc/syslogd.conf ou o quê. ..

Por favor, deixe-me saber se você tem uma maneira infalível de silenciar seletivamente o registro por aplicativo , ou ainda melhor, aumentar ou diminuir o detalhamento do registro, por processo / comando, etc no Mac OS X .

    
por mralexgray 03.05.2011 / 00:17

4 respostas

5

Você pode querer olhar para asl.conf(5) , o que permite que você ignore / processe mensagens de log em um nível bem detalhado.

Algo como:

? [= Sender ObnoxiousLogger] ignore

deve fazer o truque. Se você ainda quiser ver as mensagens mais sérias do remetente desagradável, algo como:

? [= Sender ObnoxiousLogger] [> Level error] ignore

pode ser mais apropriado.

Nota : depois de editar /etc/asl.conf , não se esqueça de kill -HUP do seu syslogd.

    
por 10.08.2011 / 11:25
3

Basta criar um Arquivo »Nova pesquisa de banco de dados… , procurando O recurso contém" console " e Remetente não contém" ObnoxiousLogger ", e ignorar a busca padrão do banco de dados Console Messages ?

Você pode usar o seguinte comando para definir níveis individuais de filtragem de registros para processos específicos:

syslog -c processname -d

Isso definirá o nível de log das instâncias atualmente em execução de processname para todas as mensagens de nível de depuração ou superior . os níveis possíveis são cada caractere de pacewnid : (Pânico), Alerta, Crítico, Erro, Aviso, Aviso, Informações e Depuração .

Portanto, para ativar somente o registro de mensagens de aviso e maior para o Finder, use:

syslog -c Finder -w

Você precisará repetir isso sempre que reiniciar o processo em questão.

    
por 18.05.2011 / 19:53
1

A solução proposta por Torsten parece não funcionar. Parece que adicionar essa configuração ao global asl.conf não tem o efeito esperado da maneira como as regras são tratadas.

Uma solução para este problema, descobri, depois que eu quase fiquei brigada lutando com o asl.conf principal, é usar arquivos de configuração asl/* separados para cada filtro. Esses arquivos devem ser armazenados em /etc/asl/

por exemplo. para ignorar "com.example.Sender" e filtrar seu spam de log de system.log, poderíamos criar um arquivo /etc/asl/com.example.Sender com o seguinte conteúdo:

? [= Sender com.example.Sender] claim only
* ignore

O claim only da correspondência (um "Remetente" no exemplo) faz com que as regras no mestre asl.conf sejam ignoradas, o que significa que as coisas não acabarão em system.log .

Não se esqueça de reiniciar syslogd , claro.

    
por 08.08.2016 / 02:10
0

Eu postei uma resposta mais detalhada em AskDifferent.

Coloque em /etc/asl.conf uma regra como a seguinte

? [= Sender foobar] [<= Level error] notify com.apple.foobar
  op   key   value   op  key   value
  -----query 1----- -----query 2---- ---------action--------

Para ignorar as mensagens em system.log e em Console.app , você deve adicionar regras para ignorar as mensagens antes do seguinte comentário em asl.conf .

# Flat file configurations formerly in syslog.conf

Exemplo com o modificador S , que ignora as mensagens correspondentes à substring de SIMBL Agent .

? [= Sender SIMBL Agent] [S= Message warning: failed to get scripting definition from] ignore
  op -key-- ---value---  mod --key-- --------------------value-----------------------
  --------query 1------- -----------------------query 2------------------------------- action

Depois de adicionar uma regra, reinicie o daemon com sudo killall HUP syslogd .

Testado com sucesso no OS X 10.8.5.

    
por 13.02.2017 / 15:36