2
在这个时候,我尝试登录到数据库中丝毫L4N工作,这是该表的结构:log4net的不是我的海关性质
[TcpClientTracer]
[ID] [int] IDENTITY(1,1) NOT NULL,
[Date] [datetime] NOT NULL,
[Thread] [varchar](20) NOT NULL,
[EventType] [varchar](20) NOT NULL,
[ClientId] [int] NOT NULL,
[ModemId] [varchar](128) NOT NULL,
[EventText] [varchar](2000) NOT NULL
填写此表我用这个附加目的地:
<appender name="TcpAdoNetAppender" type="log4net.Appender.AdoNetAppender,log4net">
<bufferSize value="50" />
<connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<connectionString value="Data Source=[IPADDRES]; Initial Catalog=XYXY; User Id=username;Password=password" />
<commandText value="INSERT INTO TcpClientTracer ([Date],[Thread],[EventType],[ClientId],[ModemId],[EventText]) VALUES (@log_date, @thread, @eventtype, @clientid, @modemid, @eventtext)" />
<parameter>
<parameterName value="@log_date" />
<dbType value="DateTime" />
<layout type="log4net.Layout.RawTimeStampLayout" />
</parameter>
<parameter>
<parameterName value="@thread" />
<dbType value="String" />
<size value="20" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%thread" />
</layout>
</parameter>
<parameter>
<parameterName value="@eventtype" />
<dbType value="String" />
<size value="20" />
<layout type="log4net.Layout.RawPropertyLayout">
<key value="eventtype" />
</layout>
</parameter>
<parameter>
<parameterName value="@clientid"/>
<dbType value="Int32"/>
<layout type="log4net.Layout.RawPropertyLayout">
<key value="clientid" />
</layout>
</parameter>
<parameter>
<parameterName value="@modemid" />
<dbType value="String" />
<size value="128" />
<layout type="log4net.Layout.RawPropertyLayout">
<key value="modemid" />
</layout>
</parameter>
<parameter>
<parameterName value="@eventtext" />
<dbType value="String" />
<size value="2000" />
<layout type="log4net.Layout.RawPropertyLayout">
<key value="eventtext" />
</layout>
</parameter>
</appender>
的记录是这样的:
<logger name="TcpClientTracer" additivity="false">
<level value="ALL"/>
<appender-ref ref="TcpAdoNetAppender" />
</logger>
和......通过从C#中的数据我用这个方法:
public static void writeLog(GroupType mGrupo, Hashtable mValues)
{
ILog Logger = oLogger.GetLoggerByGroup(mGrupo);
Type declaringType = typeof(log4net.LogManager);
LoggingEvent loggingEvent = new LoggingEvent(declaringType, Logger.Logger.Repository, Logger.Logger.Name, Level.All, null, null);//null = Message, Exception
foreach (DictionaryEntry CurrentEntry in mValues)
{
loggingEvent.Properties[CurrentEntry.Key.ToString()] = CurrentEntry.Value;
}
Logger.Logger.Log(loggingEvent);
}
我不知道LoggingEvent是如何工作的,但我用它来填充其他表格并且完美地工作。 如果有人可以帮助我解决这个问题,我apreciate!
感谢阅读我的英文不好!
感谢@Stefan艾格里,我会尝试... – AuTi
看L4N的结果丝毫的帮助: log4net的:XmlHierarchyConfigurator:设置属性[布局]反对[log4net.Layout.RawPropertyLayout] log4net:XmlHierarchyConfigurator:将Collection属性[AddParameter]设置为对象[log4net.Appender.AdoNetAppenderParameter] log4net:XmlHierarchyConfigurator:设置属性[ParameterName]为字符串值[@clientid] log4net:XmlHierarchyConfigurator:将属性[DbType]设置为DbType值[ Int32] log4net:错误XmlHierarchyConfigurator:找不到Property [conversionPattern]来设置ob ject on [log4net.Layout.RawPropertyLayout] – AuTi
其实您提供的示例不起作用。您正在使用具有'RawPropertyLayout'的'PatternLayout'语法。使用'RawPropertyLayout',您只需使用该属性的名称。 – luksan