一、日志配置
1.XML配置
在根目录/Config/文件夹下添加 Log4Net.config 文件
文件内容
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<!-- Register a section handler for the log4net section -->
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<log4net>
<!-- Setup the root category, add the appenders and set the default level -->
<root>
<level value="ALL" />
<!--<appender-ref ref="AdoNetAppender_SqlServer" />-->
<appender-ref ref="FatalAppender"/>
<appender-ref ref="WarnAppender"/>
<appender-ref ref="DebugAppender"/>
<appender-ref ref="InfoAppender"/>
<appender-ref ref="ErrorAppender"/>
</root>
<!-- Define some output appenders -->
<!--定义输出到文件中-->
<appender name="DebugAppender" type="log4net.Appender.RollingFileAppender">
<!--定义文件存放位置-->
<file value="log/"/>
<appendToFile value="true"/>
<rollingStyle value="Date"/>
<datePattern value="yyyyMM/yyyyMMdd'.Debug'"/>
<staticLogFileName value="false"/>
<param name="MaxSizeRollBackups" value="100"/>
<layout type="log4net.Layout.PatternLayout">
<!--<conversionPattern value="%date [%thread] %-5level %logger [%ndc] <%property{auth}> : %newline%message%newline%newline" />-->
<conversionPattern value="==== %date [%thread] %-5level ==== : %newline%message%newline%newline" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="DEBUG" />
<param name="LevelMax" value="DEBUG" />
</filter>
</appender>
<!--定义输出到文件中-->
<appender name="WarnAppender" type="log4net.Appender.RollingFileAppender">
<!--定义文件存放位置-->
<file value="log/"/>
<appendToFile value="true"/>
<rollingStyle value="Date"/>
<datePattern value="yyyyMM/yyyyMMdd'.Warn'"/>
<staticLogFileName value="false"/>
<param name="MaxSizeRollBackups" value="100"/>
<layout type="log4net.Layout.PatternLayout">
<!--<conversionPattern value="%date [%thread] %-5level %logger [%ndc] <%property{auth}> : %newline%message%newline%newline" />-->
<conversionPattern value="==== %date [%thread] %-5level ==== : %newline%message%newline%newline" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="WARN" />
<param name="LevelMax" value="WARN" />
</filter>
</appender>
<!--定义输出到文件中-->
<appender name="FatalAppender" type="log4net.Appender.RollingFileAppender">
<!--定义文件存放位置-->
<file value="log/"/>
<appendToFile value="true"/>
<rollingStyle value="Date"/>
<datePattern value="yyyyMM/yyyyMMdd'.Fatal'"/>
<staticLogFileName value="false"/>
<param name="MaxSizeRollBackups" value="100"/>
<layout type="log4net.Layout.PatternLayout">
<!--<conversionPattern value="%date [%thread] %-5level %logger [%ndc] <%property{auth}> : %newline%message%newline%newline" />-->
<conversionPattern value="==== %date [%thread] %-5level ==== : %newline%message%newline%newline" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="FATAL" />
<param name="LevelMax" value="FATAL" />
</filter>
</appender>
<!--定义输出到文件中-->
<appender name="InfoAppender" type="log4net.Appender.RollingFileAppender">
<!--定义文件存放位置-->
<file value="log/"/>
<appendToFile value="true"/>
<rollingStyle value="Date"/>
<datePattern value="yyyyMM/yyyyMMdd'.Info'"/>
<staticLogFileName value="false"/>
<param name="MaxSizeRollBackups" value="100"/>
<layout type="log4net.Layout.PatternLayout">
<!--<conversionPattern value="%date [%thread] %-5level %logger [%ndc] <%property{auth}> : %newline%message%newline%newline" />-->
<conversionPattern value="==== %date [%thread] %-5level ==== : %newline%message%newline%newline" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="INFO" />
<param name="LevelMax" value="INFO" />
</filter>
</appender>
<!--定义输出到文件中-->
<appender name="ErrorAppender" type="log4net.Appender.RollingFileAppender">
<!--定义文件存放位置-->
<file value="log/"/>
<appendToFile value="true"/>
<rollingStyle value="Date"/>
<datePattern value="yyyyMM/yyyyMMdd'.Error'"/>
<staticLogFileName value="false"/>
<param name="MaxSizeRollBackups" value="100"/>
<layout type="log4net.Layout.PatternLayout">
<!--<conversionPattern value="%date [%thread] %-5level %logger [%ndc] <%property{auth}> : %newline%message%newline%newline" />-->
<conversionPattern value="==== %date [%thread] %-5level ==== : %newline%message%newline%newline" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="ERROR" />
<param name="LevelMax" value="ERROR" />
</filter>
</appender>
<!--Sql server Appender -->
<appender name="AdoNetAppender_SqlServer" type="log4net.Appender.ADONetAppender">
<!--bufferSize 为缓冲区大小,只有日志记录超设定值才会一块写入到数据库 -->
<!-- 注意bufferSize 参数在测试环境建议设置为 0 ,在生产环境建议设置为100 -->
<bufferSize value="0" />
<!--访问数据库驱动的引用-->
<connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<!--数据库连接字符串-->
<connectionString value="server=192.168.9.56;database=Freight;uid=Freight;password=Freight123!@#;"/>
<!--数据库执行的Sql语句-->
<commandText value="INSERT INTO Log4Net
([Date],[Thread],[Level],[Logger],[Message],[Exception],[Source]
,[CreatedUserId],[CreatedUserName],[CreatedTime],[LastUpdatedUserId],[LastUpdatedTime],[LastUpdatedUserName])
VALUES (@log_date, @thread, @log_level, @logger, @message, @exception,@source,
'System','System',GETDATE(),'System',GETDATE(),'System')" />
<!-- 日志记录时间,RawTimeStampLayout为默认的时间输出格式 -->
<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>
<!--日志等级 级别从低到高分别是:debug(调试),info(信息),warn(警告),error(错误),fatal(致命错误)-->
<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" >
<conversionPattern value="%exception" />
</layout>
</parameter>
<parameter>
<parameterName value="@source" />
<dbType value="String" />
<size value="1000" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%file:%line" />
</layout>
</parameter>
</appender>
</log4net>
</configuration>
二、Api请求
1.查询
请求实例
Url:http://localhost:33395/common/Crud/Query?uniqueId=Query1
RequestData:{ "Hawb", "WSEJA00942885"}
2.新增
2.1新增单条
请求实例
Url:http://localhost:33395/common/Crud/Add?uniqueId=Add1
RequestData:{
"Code":"AddSingle1",
"Name_Cn":"新增单条数据",
"Name_En":"Add Single Data",
"Parameter_Value":"单元测试新增单条数据",
"Description":"单元测试新增单条数据"
}
2.2新增多条
请求实例
Url:http://localhost:33395/common/Crud/AddList?uniqueId=Add1
RequestData:[{
"Code":"AddSingle1",
"Name_Cn":"新增单条数据",
"Name_En":"Add Single Data",
"Parameter_Value":"单元测试新增单条数据",
"Description":"单元测试新增单条数据"
},{
"Code":"AddSingle2",
"Name_Cn":"新增单条数据",
"Name_En":"Add Single Data",
"Parameter_Value":"单元测试新增单条数据",
"Description":"单元测试新增单条数据"
}]
3.修改
3.1修改单条
此处修改更新的条件是主键
请求实例
Url:http://localhost:33395/common/Crud/Update?uniqueId=Update1
RequestData:{"Code":"AddSingle1","Name_Cn":"被修改的数据","Description":"哈哈"}
3.2修改多条
请求实例
Url:http://localhost:33395/common/Crud/UpdateList?uniqueId=Update1
RequestData:[
{
"Code":"AddSingle1",
"Name_Cn":"被修改的数据",
"Description":"哈哈"
},
{
"Code":"AddSingle2",
"Name_Cn":"被修改的数据2",
"Description":"哈哈2"
}
]
4.删除
4.1删除单条
请求实例
Url:http://localhost:33395/common/Crud/Delete?uniqueId=Delele1
RequestData:{"Code":"AddSingle1"}
4.2删除多条
请求实例
Url:http://localhost:33395/common/Crud/DeleteList?uniqueId=DeleleList1
RequestData:[{"Code":"AddSingle1"},{"Code":"AddSingle2"}]