Log4net을 사용하여 두 개의 다른 테이블에 로그를 만들려고합니다. 첫 번째 adonetappender는 'log'라는 테이블에 로그인하고 표준 ID, 날짜, 스레드, 레벨 등이어야합니다. 두 번째 adonetappender는 'usageLog'라는 세 개의 열이있는 테이블에 로그온해야하며 날짜 만 기록하면됩니다/시간 및 두 개의 추가 문자열 값. 나는 내 인생을 생각할 수 없다. 내가 무엇을해야 하나? 아래는 나의 설정입니다. 그 정확한지 나는 프로그램에서 이것을 어떻게 사용하는지 모른다. log4net 각 사용자 정의 필드가있는 복수 adonetappender
<log4net>
<logger additivity="false" name="Log">
<level value="INFO"/>
<appender-ref ref="LogAppender" />
</logger>
<logger additivity="false" name="UsageLog">
<level value="INFO"/>
<appender-ref ref="UsageLogAppender" />
</logger>
<appender name="LogAppender" type="log4net.Appender.AdoNetAppender">
<bufferSize value="1" />
<!-- Causes errors to be written immediately - default is 100 -->
<connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<connectionString value="data source=dummy;initial catalog=dummy;integrated security=false;persist security info=True;User ID=dummy;Password=dummy" />
<commandText value="INSERT INTO Log ([Date],[Thread],[Level],[Logger],[Message],[Exception]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception)" />
<parameter>
<parameterName value="@log_date" />
<dbType value="DateTime" />
<layout type="log4net.Layout.RawTimeStampLayout" />
</parameter>
<parameter>
<parameterName value="@thread" />
<dbType value="String" />
<size value="255" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%thread" />
</layout>
</parameter>
<parameter>
<parameterName value="@log_level" />
<dbType value="String" />
<size value="50" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%level" />
</layout>
</parameter>
<parameter>
<parameterName value="@logger" />
<dbType value="String" />
<size value="255" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%logger" />
</layout>
</parameter>
<parameter>
<parameterName value="@message" />
<dbType value="String" />
<size value="4000" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%message" />
</layout>
</parameter>
<parameter>
<parameterName value="@exception" />
<dbType value="String" />
<size value="2000" />
<layout type="log4net.Layout.ExceptionLayout" />
</parameter>
</appender>
<appender name="UsageLogAppender" type="log4net.Appender.AdoNetAppender">
<bufferSize value="1" />
<!-- Causes errors to be written immediately - default is 100 -->
<connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<connectionString value="data source=dummy;initial catalog=dummy;integrated security=false;persist security info=True;User ID=dummy;Password=dummy" />
<commandText value="INSERT INTO UsageLog ([Date],[ManDesc],[ModDesc]) VALUES (@log_date, @man_desc, @model_desc)" />
<parameter>
<parameterName value="@log_date" />
<dbType value="DateTime" />
<layout type="log4net.Layout.RawTimeStampLayout" />
</parameter>
<parameter>
<parameterName value="@man_desc" />
<dbType value="String" />
<size value="255" />
<layout type="log4net.Layout.RawPropertyLayout">
<conversionPattern value="%property{man_desc}" />
</layout>
</parameter>
<parameter>
<parameterName value="@model_desc" />
<dbType value="String" />
<size value="255" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%property{model_desc}" />
</layout>
</parameter>
</appender>
는
그것은 조금 다음 확인할 수 있습니다, 잘못을 확인하려면 어렵습니다 : 당신은 디스크의 텍스트 파일에 쓸 때 로그 작업을합니까? 그렇지 않다면 log4net에 대한 구성 단계를 다시 거쳐 무엇이 잘못되었는지 확인하십시오. 그렇다면 자격 증명이 올바른지 확인하고 응용 프로그램이 배포 된 컴퓨터에서 SQL db에 대한 명령 줄 호출이 작동하는지 확인하십시오. – samy