Outro dia eu estava navegando e achei um post bem interessante, que é sobre gravar no Event Log do windows entradas geradas pelo AX 2009 e resolvi traduzir e publicar aqui.
Abaixo a tradução e alguns comentários:
Nosso cliente requisitou manter uma lista com todos os erros de sistema gerados pelo Dynamics AX durente os testes de aceitação. Eu usei o “application event logs” para guardar a informação.
O código abaixo mostra como você insere uma entrada no Event Log no X++:
Crie uma nova classe, chamada AX_EventLog, com um método estático chamado WriteEventLog:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | static void WriteEventLog(Exception _exception, str _event) { str eventSource = "AX event"; str logType = "Application"; System.Diagnostics.EventLogEntryType eventLogEntryType; int eventCategory = 9999; ; switch(_exception) { case Exception::Info: eventLogEntryType = System.Diagnostics.EventLogEntryType::Information; break; case Exception::Warning: eventLogEntryType = System.Diagnostics.EventLogEntryType::Warning; break; default: eventLogEntryType = System.Diagnostics.EventLogEntryType::Error; } if (!System.Diagnostics.EventLog::Exists(eventSource)) System.Diagnostics.EventLog::CreateEventSource(eventSource, logType); System.Diagnostics.EventLog::WriteEntry(eventSource, _event, eventLogEntryType, eventCategory); } |
O código acima recebe como paramêtro uma excessão e também uma string com o evento e faz a inserção no Event Log.
Agora faremos uma adaptação no método add() da classe Info, que é o responsável por adicionar os eventos na janela de info.
1 2 3 4 5 6 7 8 9 10 11 | Exception add( Exception _exception, str _txt, str _helpUrl = '', SysInfoAction _sysInfoAction = null, boolean buildprefix = true) { … AX_EventLog::WriteEventLog(_exception, _txt); … } |
Com isso você não precisa fazer mais nada, porque como toda excessão passa pelo método add() da classe Info, automaticamente tudo será logado.
É isso ai, ta resolvido o problema.
[]s
Pichler
Fonte: http://fredshen.spaces.live.com/Blog/cns!B32E9346DBBAE4E3!345.entry
Leave a reply