Knitter Posted February 21, 2014 at 12:39 AM Report #546007 Posted February 21, 2014 at 12:39 AM (edited) Boas, Estou a usar uma biblioteca que faz uso da log4net e não a consigo configurar, sempre que executo a minha aplicação tenho a clássica mensagem: log4net:ERROR XmlConfigurator: Failed to find configuration section 'log4net' in the application's .config file. Check your .config file for the <log4net> and <configSections> elements. The configuration section should look like: <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" /> Eu não preciso dos logs e para piorar a aplicação que estou a fazer é uma aplicação de consola e todo o output é usado para fazer PIPE com outras aplicações, não posso ter mensagens de erro do log4net a aparecer no stdout. Alguma sugestão para resolver este problema? Pelas pesquisas que fiz é suposto existir um ficheiro com o nome da aplicação que estou a fazer e com extensão .config, no meu caso tenha o ficheiro existia com o nome App.config. Adicionei as secções de configuração antes de mudar o nome e depois de mudar o nome mas não resolveu o problema: <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" /> </configSections> Estou sem ideias 😞 Edited February 21, 2014 at 01:55 PM by apocsantos
Flinger Posted February 21, 2014 at 01:17 AM Report #546013 Posted February 21, 2014 at 01:17 AM O problema é saber exactamente onde ele está a ir buscar a configuração. Se ao ficheiro por defeito da configuração, se a um ficheiro próprio (também é possível configurar isso). Partindo do princípio que é ao ficheiro por defeito, vê se não tens (correr a aplicação), um ficheiro com o nome da aplicação.exe.config. Por defeito é aqui que a tua aplicação vai buscar essa configuração. Para te dar um exemplo da configuração: <?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="log4net" type="System.Configuration.IgnoreSectionHandler"/> </configSections> <log4net> <!-- Define some output appenders --> <appender name="FileAppender" type="log4net.Appender.FileAppender"> <file value="log-file.txt" /> <appendToFile value="true" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> </layout> </appender> <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" > <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger [%ndc] ID=%property{EventID} - %message%newline" /> </layout> </appender> <!-- Setup the root category, add the appenders and set the default level --> <root> <level value="FATAL" /> <appender-ref ref="FileAppender" /> </root> </log4net> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> </startup> </configuration> Esta configuração apenas te usa o ficheiro de log em caso de erros fatais, ficando tudo o resto silenciado. Se funcionar, podes tentar brincar com isso, como, por exemplo, retirar tudo de dentro do elemento root, que poderá desactivar o log num todo. Se quiseres também podes mudar o level para All, para veres se a tua alteração está a funcionar, e depois tentares desligar todo e qualquer log.
Knitter Posted February 21, 2014 at 01:40 AM Author Report #546015 Posted February 21, 2014 at 01:40 AM (edited) Nada feito. O projecto chama-se DNIReader, antes tinha um ficheiro chamado App.config, que alterei para DNIReader.config, este é o ficheiro de configuração da aplicação onde tenho essas configurações. Será que devia ter um ficheiro chamado DNIReader.exe.config? Criei o projecto como uma C# Console Application no VS 2012 e esse ficheiro nunca existiu. Edit: Ahh! Problema resolvido, falha entre a cadeira e o teclado 🙂 Inicialmente o ficheiro de config estava mal, pelas pesquisas onde diziam que devia existir um ficheiro com <nome da app>.config alterei o nome do meu App.config para DNIReader.config, afinal, App.config era o nome certo. Obrigado. E esqueci-me de colocar aqui a solução, caso alguém venha a passar pelo mesmo problema, este é o conteúdo do meu ficheiro App.config: <?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" /> </configSections> <log4net treshold="OFF" /> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> </startup> </configuration> Notem que o elemento configSections tem de ser o primeiro, e que no meu caso estou a desligar todos os logs. Edited February 21, 2014 at 01:57 PM by apocsantos
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now