Sto tentando di aggiungere la registrazione alla mia app utilizzando Web Api 2 e Owin, quindi ho iniziato a utilizzare Microsoft Owin Logging, che richiede uno ILogger
e ILoggerFactory
, che è stato implementato e funziona perfettamente quando devo registrare qualcosa all'interno di STARTUP metodo o uno dei componenti di Owin Middleware.Microsoft Owin Logging - Web Api 2 - Come si crea il logger?
Per esempio, quando sono nel metodo Startup
posso creare il registratore utilizzando:
public void Configuration(IAppBuilder app)
{
// Creates configuration
var configuration = new HttpConfiguration();
// Configure WebApi Settings
WebApiConfig.Register(configuration);
app.SetLoggerFactory(new OwinLog4NetLoggerFactory("Default"));
var logger = app.CreateLogger<Startup>();
logger.WriteInformation("test log");
// Enabled WebApi in OWIN
app.UseWebApi(configuration);
}
Dove "OwinLog4NetLoggerFactory" è la mia implementazione ILoggerFactory personalizzato.
Finora, tutto bene ... ma ... Come posso creare il registratore quando sono nel vero metodo di azione web API? ... Ho provato ad accedere allo Request.GetOwinEnvironment()
e la fabbrica del logger non è nel dizionario .
Ad esempio:
public class AccountController : ApiController
{
public int Get(int id)
{
// Create logger here
return id + 1;
}
}
so di poter creare una classe statica con un riferimento al logger di fabbrica o anche Iniezione di aggiungere il registratore al controller api, ma che sembra troppo complicato per qualcosa che dovrebbe essere già lì
Qualsiasi idea sarebbe apprezzata.
qualcuno può rispondere l'attuale domanda del poster originale? L'unica risposta di seguito non è ciò che ha chiesto. –