Domanda

Ho un'applicazione c ++ che accede ad alcuni file usando log4cxx (appender RollingFile). Voglio accedere allo stesso file, allo stesso tempo, da un altro modulo scritto in c #; quindi ho configurato log4net per utilizzare lo stesso file, ma non riesco a ricevere i nuovi messaggi. Se disattivo la registrazione c ++, posso vedere i messaggi c #. Quindi penso che sia un problema di blocco e ho cercato un'opzione di configurazione per dire a log4cxx di non bloccare il file. Sono entrato nel modello MinimalLock per log4net, ma non sono riuscito a trovare nulla in log4cxx ... qualcuno sa se potrebbe essere fatto e come?

grazie in anticipo,

Ernesto Cullen

È stato utile?

Soluzione

Penso che potresti incorrere in problemi di concorrenza e contesa, indipendentemente dalla configurazione che utilizzi, purché tu stia tentando di fare in modo che due processi diversi accedano allo stesso file.

Dovresti esaminare l'invio di eventi di registro da entrambi i processi a una terza posizione centralizzata - dai un'occhiata a RemotingAppender in log4net, presumo che log4cxx abbia qualcosa di simile.

Altri suggerimenti

Anche se la domanda è piuttosto vecchia (e contrassegnata come risposta) e probabilmente hai già finito con il tuo progetto:

log4net e log4cxx sono framwork di registrazione distinti che non si conoscono, quindi non è possibile configurarli per scrivere nello stesso file. Solo uno dei framworks avrà il file aperto per la scrittura, a seconda di quale sia stato il primo.

Quello che ho fatto in una situazione simile (un'applicazione legacy c ++ con registrazione personalizzata di un nuovo modulo c # usando log4net) è crea un appender log4net personalizzato che inoltra le tracce nel vecchio framework di registrazione. Nel progetto in cui ero coinvolto il vecchio codice C ++ aveva un'interfaccia COM di Windows per la scrittura di messaggi di registro utilizzati dall'appender personalizzato.

Un altro modo sarebbe usare C ++ / CLI per creare l'appender personalizzato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top