in a project C# Web API + html/JS/JQuery, I'm currently using log4net logging library for information (server side).
Now, I need also to log information about client-side events.
I found the library JSNLog.Log4Net version: 2.20.1, and it seems to work.
My problem is that I need to custom log, as I'm doing with log4net.
Following the log4net.config file:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net>
<appender name="ADONetAppender" type="log4net.Appender.ADONetAppender">
<bufferSize value="0" />
<reconnectOnError value="true"/>
<connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<connectionString .... />
<commandText value="INSERT INTO [INT].[Log] ([Appl],[Level],[IP],[HttpMethod],[API],[Request],[DataInput],[Response],[DataOutput],[UserName],[Message],[Exception],[ExecutedTime])
VALUES (@APPL, @log_level, @IP, @logger, @API, CASE WHEN (@Request='(null)') THEN null ELSE @Request END, @DataInput, CASE WHEN (@Response='(null)') THEN null ELSE @Response END, @DataOutput, @UserName, @Message, @Exception, @ExecutedTime)" />
<parameter>
<parameterName value="@log_level" />
<dbType value="String" />
<size value="16" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%p" />
</layout>
</parameter>
<parameter>
<parameterName value="@APPL" />
<dbType value="String" />
<size value="16" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%property{APPL}" />
</layout>
</parameter>
<parameter>
<parameterName value="@IP"/>
<dbType value="String" />
<size value="128" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%property{IP}" />
</layout>
</parameter>
<parameter>
<parameterName value="@logger" />
<dbType value="String" />
<size value="512" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%c" />
</layout>
</parameter>
<parameter>
<parameterName value="@API"/>
<dbType value="String" />
<size value="128" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%property{API}" />
</layout>
</parameter>
<parameter>
<parameterName value="@Request" />
<dbType value="String" />
<size value="4000" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%property{Request}" />
</layout>
</parameter>
<parameter>
<parameterName value="@DataInput" />
<dbType value="String" />
<size value="4000" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%property{DataInput}" />
</layout>
</parameter>
<parameter>
<parameterName value="@Response" />
<dbType value="String" />
<size value="4000" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%property{Response}" />
</layout>
</parameter>
<parameter>
<parameterName value="@DataOutput" />
<dbType value="String" />
<size value="4000" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%property{DataOutput}" />
</layout>
</parameter>
<parameter>
<parameterName value="@Message" />
<dbType value="String" />
<size value="4000" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%m" />
</layout>
</parameter>
<parameter>
<parameterName value="@Exception" />
<dbType value="String" />
<size value="4000" />
<layout type="log4net.Layout.ExceptionLayout" />
</parameter>
<parameter>
<parameterName value="@UserName"/>
<dbType value="String" />
<size value="128" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%property{UserName}" />
</layout>
</parameter>
<parameter>
<parameterName value="@ExecutedTime"/>
<dbType value="Int32" />
<layout type="log4net.Layout.RawPropertyLayout">
<key value="ExecutedTime" />
</layout>
</parameter>
</appender>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="DEBUG" />
<levelMax value="FATAL" />
</filter>
<bufferSize value="0" />
<file value="Log\SC_Log.log" />
<appendToFile value="true" />
<rollingStyle value="Composite" />
<datePattern value=".yyyyMMdd.lo\\g" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="100MB" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %-5level - (%file:%line) - %message%newline" />
</layout>
</appender>
<!--<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" >
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p [%x] - %m%n" />
</layout>
</appender>-->
<root>
<level value="ALL" />
<appender-ref ref="RollingLogFileAppender" />
<!--<appender-ref ref="ConsoleAppender" />-->
<appender-ref ref="ADONetAppender" />
</root>
</log4net>
</configuration>
following, an example of what I'm log:
As you can see, the yellow line (the one generated by JSNLog.log4net) lack much information.
How do I add them?
Bye
Davide
PS .: If necessary, I can also change library for client-side logging.
The missing entries are the %property{X}
ones, which the client side library cannot access, as they are held in memory on the server. If you want to log them from the client side, you will need to pass the property values through to it.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.