Pergunta

Estou desenvolvendo uma solução personalizada do SharePoint que consistem em uma característica e um trabalho de timer (que é criada pelo recurso em FeatureActivated). Na minha solução Eu quero usar log4net para registro (eu sei sobre ULS).

Está tudo bem com log4net no próprio recurso (log4net.config apenas colocado perto web.config e tudo está bem), mas não tenho absolutamente nenhuma idéia de como inicializar log4net de trabalho de timer (tendo em conta que não é executado por IIS, mas por OSWTIMER).

Alguém por favor pode me ajudar a encontrar respostas para as perguntas:

  1. Onde armazenar log4net.config e como passá-lo para o trabalho?
  2. que eu preciso para inicializar log4net cada vez Execute () método é chamado?

Obrigado!

Foi útil?

Solução

Tem sido um tempo atrás desde que eu usei log4net mas se bem me lembro, você pode armazenar você arquivo de configuração onde você quiser e deixar de carga log4net-lo de lá durante a inicialização do logger.

1) Um bom lugar para armazenar o arquivo de configuração seria a pasta dentro dos 12 colméias. Talvez a pasta de sua funcionalidade. Como o caminho para esse arquivo não vai mudar, deve ser fácil para referenciá-lo com o logger.

2) Eu acho que você vai ter que inicializar o registrador de cada vez como o SPJobDefinition (classe trabalho de timer) é armazenado no banco de dados quando ele não é executado. A funcionalidade para armazenar o trabalho de timer no banco de dados vem de classe base do SPJobDefinition SPPersistedObject . variáveis ??de membro de uma classe herdada de SPPersistedObject, que devem ser guardados juntamente com a classe no banco de dados, tem que ser marcado com um atributo [Persisted]. Mas, tanto quanto eu sei objetos persistiam só pode ser tipos de dados elementares (int, long, corda, ...).

Assim armazenar um objeto Logger log4net no banco de dados não irá funcionar ou pelo menos não é suportado. Então, cada vez que seu trabalho é carregado a partir do banco de dados do objeto Logger tem de ser inicializado novamente.

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