2010-10-25 2 views
2

Я изучаю log4net и в настоящее время тестирую, как использовать App.Config для XMLConfiguration.Использование App.Config из командной строки для программ C#

Проблема заключается в том, что у меня нет .NET IDE, таких как Visual Studio 2008 Express Edition или в офисе (не поймите меня начали о том, почему/как :-))

мне нужно собрать и запустите мой код, где log4net считывает параметры конфигурации из App.Config. Как мне это сделать?

My C# код выглядит следующим образом.

public class BasicXMLConfiguration 
{ 
    public static void Main (string [] args) 
    { 
     log4net.Config.XmlConfigurator.Configure(); 
     log4net.ILog log = 
        log4net.LogManager.GetLogger(typeof(BasicXMLConfiguration)); 
     log.Info("beginning of loop"); 
     for (int c = 0; c < 10; c++) 
     { 
      log.DebugFormat("Loop Count is {0}", c); 
     } 
     log.Info("looping ends"); 
    } 
} 

Мой App.Config выглядит следующим образом

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 

    <configSections> 
     <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> 
    </configSections> 

    <log4net> 

     <!-- 
     <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender"> 
      <layout type="log4net.Layout.SimpleLayout" /> 
     </appender> 
     --> 
     <!-- Never, ever use the FileAppender. Instead, use the RollingFileAppender --> 
     <!-- 
     <appender name="FileAppender" type="log4net.Appender.FileAppender"> 
      <file value="C:\My_Code\Log4NetTutorials\Log_Files\log-file.txt" /> 
      <appendToFile value="true" /> 
      <encoding value="utf-8"/> 
      <layout type="log4net.Layout.SimpleLayout" /> 
     </appender> 
     --> 
     <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> 
      <file value="C:\My_Code\Log4NetTutorials\Log_Files\log-file.txt" /> 
      <appendToFile value="true" /> 
      <rollingStyle value="Size" /> 
      <maxSizeRollBackups value="10" /> 
      <maximumFileSize value="10MB" /> 
      <staticLogFileName value="true" /> 
      <layout type="log4net.Layout.SimpleLayout" /> 
     </appender> 
     <root> 
      <level value="ALL" /> 
      <appender-ref ref="RollingFileAppender" /> 
     </root> 

    </log4net> 

</configuration> 

Моя команда, которую я использую это

csc BasicXMLConfiguration.cs /r:log4net.dll 

Он отлично компилируется. Однако, когда я запускаю exe как

BasicXMLConfiguration.exe 

Я получаю следующее сообщение об ошибке.

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 n ame="log4net" 
     type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/> 

Как мне сделать ссылку на App.Config?

ответ

4

необходимо переименовать app.config в name_of_your_exe.config. Предположим, что ваше имя консольного приложения - Log4NetTest.exe, затем переименуйте app.config в Log4Net.exe.config, и все будет хорошо.

Как имя вашей программы BasicXMLConfiguration.exe так переименовать app.config в BasicXMLConfiguration.exe.config и он будет работать.

+0

@ TheVillateIdiot: Aaargh! Итак, все это нужно сделать. С помощью IDE Visual Studio они автоматически создадут AppName.exe.config и скопируют содержимое, тогда как без IDE мне придется вручную это сделать. – Kanini

+0

да, что (и много много других положительных героев) почему он продает: D – TheVillageIdiot

+0

@ Kanini - У меня есть только симпатия к вам. Я не могу себе представить, почему ваш офис не позволит вам получить доступ по крайней мере к VS Express, если вам нужно использовать .Net для своей работы. Надеюсь, вы возненавидите об этом. Если бы я был вами :-) – InSane

Смежные вопросы