Este equipo especializado pasados ciertos días de investigación y de recopilar de información, han obtenido los datos necesarios, deseamos que te sea de utilidad en tu proyecto.
Solución:
Tal vez no sea la forma correcta pero, de todos modos logré usar mi log4net.config
en appSettings.json
. Estoy poniendo mi respuesta aquí para que pueda ayudar a alguien si no quiere usar un archivo de configuración adicional para su proyecto.
Así que lo que he hecho es convertir mi XML dentro JSON y usó el JSON como un string en mi appSettings.json
después de eso, uso el siguiente código para leer el string.
appSettings.json
"ConnectionStrings":
"LoggerConfig": "Config string"
json a XML conversión usando
Newtonsoft.Json
string xmlElement = _configuration["ConnectionStrings:LoggerConfig"];
XmlDocument doc = (XmlDocument)JsonConvert.DeserializeXmlNode(xmlElement);
XmlConfigurator.Configure(logRepository, GenerateStreamFromString(doc.InnerXml));
Este código se utiliza para convertir el JSON dentro XML pero no proporcionará el contenido XML como Elemento entonces, lo usé como una corriente. Para convertir el string en una secuencia usé el siguiente código.
public static Stream GenerateStreamFromString(string s)
var stream = new MemoryStream();
var writer = new StreamWriter(stream);
writer.Write(s);
writer.Flush();
stream.Position = 0;
return stream;
y funciona bien
Aquí solía convertir primero mi
XML to JSON
y otra vezJSON to XML
para usarlo como unlog4net config
pero si alguien quiere, use XML directamente como stringpor lo que reducirá algo de código.
Si usa el paquete nuget Microsoft.Extensions.Logging.Log4Net.AspNetCore, hay una manera de mantener la configuración de log4net en appsettings.json (pero, sinceramente, no es muy útil).
Puede escribir en appsettings.json (o appsettings.Environment.json para diferentes entornos) las reglas que anulan los nodos del archivo de configuración log4net.
Documentación
Ejemplo de configuración del nivel de registro desde appsettings.json.
configuración de aplicaciones.json:
"Log4NetCore":
"PropertyOverrides": [
"XPath": "/log4net/root/level",
"Attributes":
//"value": "ALL"
//"value": "DEBUG"
//"value": "INFO"
"value": "WARN"
//"value": "ERROR"
//"value": "FATAL"
//"value": "OFF"
]
Todavía necesita el archivo de configuración de log4net con los nodos que desea anular de appsettings.json:
Registro en Startup.cs:
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
public class Startup
public Startup(IConfiguration configuration)
Configuration = configuration;
public IConfiguration Configuration get;
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
services.AddMvc();
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
// Add these lines
var loggingOptions = this.Configuration.GetSection("Log4NetCore")
.Get();
loggerFactory.AddLog4Net(loggingOptions);
app.UseMvc();
Te mostramos reseñas y calificaciones
Si eres capaz, eres capaz de dejar un artículo acerca de qué te ha parecido esta reseña.