From a499f2435014b7f199f30841ad3fc939bcf37414 Mon Sep 17 00:00:00 2001
From: TianMaiCheng <746290578@qq.com>
Date: Wed, 11 Mar 2026 14:23:30 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=80=E4=BA=9BBUG?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
WebUI/Controllers/publicApiController.cs | 88 +-
WebUI/NLog.xsd | 5317 +++++++++++++++++
.../PublishProfiles/FolderProfile.pubxml.user | 2 +-
WebUI/WebUI.csproj | 2 +
WebUI/WebUI.csproj.user | 2 +-
WebUI/nlog.config | 35 +
项目分析报告.md | 335 ++
7 files changed, 5738 insertions(+), 43 deletions(-)
create mode 100644 WebUI/NLog.xsd
create mode 100644 WebUI/nlog.config
create mode 100644 项目分析报告.md
diff --git a/WebUI/Controllers/publicApiController.cs b/WebUI/Controllers/publicApiController.cs
index 0031871..df57725 100644
--- a/WebUI/Controllers/publicApiController.cs
+++ b/WebUI/Controllers/publicApiController.cs
@@ -13,6 +13,7 @@ using System.Linq;
using System.Text;
using WebUI.Model;
using System.Security.Cryptography;
+using NLog;
namespace WebUI.Controllers
{
@@ -87,7 +88,7 @@ namespace WebUI.Controllers
///
[HttpPost]
[Route("OTApi/SyncData")]
- public IActionResult SyncData(string Pwd, int stepid=0)
+ public IActionResult SyncData(string Pwd, int stepid = 0)
{
if (Pwd == "fs%sd")
{
@@ -110,7 +111,7 @@ namespace WebUI.Controllers
Status = false
});
}
-
+
}
else
return Json(new
@@ -281,10 +282,10 @@ namespace WebUI.Controllers
#region 获取对应的文件下发
-
+
[HttpPost]
[Route("OTApi/GainFiles")]
- public IActionResult GainFile1s(int RoomTypeid,int DataType)
+ public IActionResult GainFile1s(int RoomTypeid, int DataType)
{
FTPOperation operation = new FTPOperation();
HexFile hexFile = new HexFile();
@@ -295,8 +296,8 @@ namespace WebUI.Controllers
//状态
bool Status = false;
//最后获取的文件
- List FileName = new List ();
-
+ List FileName = new List();
+
//错误信息
string MrrMsg = null;
//机型
@@ -308,7 +309,7 @@ namespace WebUI.Controllers
//房型名称
string RoomTypeName = "";
//项目id
- int hotelId=0;
+ int hotelId = 0;
//项目名称
string hotelName = "";
//文件数量
@@ -366,15 +367,17 @@ namespace WebUI.Controllers
if (selectdata.CONFIG_BIN != null)
{
//校验MD5
- if (MD5Verify.getMD5Hash(operation.BytesToStream(operation.GetFile("Config/" + selectdata.HOTEL_GROUP_NAME + @"/" + selectdata.PROJECT_NUMBER + "-" + selectdata.HOTEL_NAME_CN + @"/" + selectdata.CONFIG_BIN))) == selectdata.CONFIG_BIN_MD5)
+ var NNN = "Config/" + selectdata.HOTEL_GROUP_NAME + @"/" + selectdata.PROJECT_NUMBER + "-" + selectdata.HOTEL_NAME_CN + @"/" + selectdata.CONFIG_BIN;
+ logger.Error("开始校验配置文件MD5,文件路径:" + NNN);
+ if (MD5Verify.getMD5Hash(operation.BytesToStream(operation.GetFile(NNN))) == selectdata.CONFIG_BIN_MD5)
{
var sety = operation.GetFile("Config/" + selectdata.HOTEL_GROUP_NAME + @"/" + selectdata.PROJECT_NUMBER + "-" + selectdata.HOTEL_NAME_CN + @"/" + selectdata.CONFIG_BIN);
- var btys= operation.ByteArrayToHexStr(sety);
- var ssety= HexFile.Crc16(sety,4, sety.Length);
- byte[] suz= new byte[10000];
- var ssety2 = HexFile.NetCRC16_Data(sety, sety.Length, 4);
+ var btys = operation.ByteArrayToHexStr(sety);
+ var ssety = HexFile.Crc16(sety, 4, sety.Length);
+ byte[] suz = new byte[10000];
+ var ssety2 = HexFile.NetCRC16_Data(sety, sety.Length, 4);
- HexFile.StrToHex(suz ,sety, 100);
+ HexFile.StrToHex(suz, sety, 100);
//找到文件头
if ((sety[0] == 0xCC) && (sety[1] == 0xC0))
@@ -404,8 +407,8 @@ namespace WebUI.Controllers
var zunsons = vaslen.Skip(157).Take(64).ToArray();
var seyu = operation.ByteArrayToHexStr(zunsons);
var setysssy = operation.UnHexs(seyu);
- setysssy = setysssy.Replace("\0",null);
- setysssy = setysssy.Replace("_","-");
+ setysssy = setysssy.Replace("\0", null);
+ setysssy = setysssy.Replace("_", "-");
ModelName = setysssy;
data = Convert.ToBase64String(sety);
FileName.Add(selectdata.CONFIG_BIN);
@@ -728,7 +731,7 @@ namespace WebUI.Controllers
eqlog.Succeed = Status;
foreach (var item in FileName)
{
- sum +=item+"/";
+ sum += item + "/";
}
eqlog.Content = "房间类型id是:" + RoomTypeid + ",升级类型是:" + DataType + ",luncher版本是:" + LuncherVer + ",升级文件名:" + sum + ",机型是:" + ModelName;
_db.TBL_EQUIPMENTISSUELOGs.AddRange(eqlog);
@@ -762,16 +765,17 @@ namespace WebUI.Controllers
//}
}
- catch (Exception ex)
+ catch (Exception ex)
{
-
+ logger.Error(ex.Message);
+ logger.Error(ex.StackTrace);
return Json(new
{
RoomTypeid,
RoomTypeName,
hotelId,
hotelName,
- Status =false,
+ Status = false,
ModelName,
//FileName,
FileCount,
@@ -795,6 +799,7 @@ namespace WebUI.Controllers
});
}
+ public static Logger logger = LogManager.GetCurrentClassLogger();
///
/// 获取文件名
///
@@ -803,7 +808,7 @@ namespace WebUI.Controllers
///
[HttpPost]
[Route("OTApi/GainFileName")]
- public IActionResult GainFileName(int RoomTypeid,int DataType)
+ public IActionResult GainFileName(int RoomTypeid, int DataType)
{
FTPOperation operation = new FTPOperation();
HexFile hexFile = new HexFile();
@@ -814,8 +819,8 @@ namespace WebUI.Controllers
//状态
bool Status = false;
//最后获取的文件
- List FileName = new List ();
-
+ List FileName = new List();
+
//错误信息
string MrrMsg = null;
//机型
@@ -827,7 +832,7 @@ namespace WebUI.Controllers
//房型名称
string RoomTypeName = "";
//项目id
- int hotelId=0;
+ int hotelId = 0;
//项目名称
string hotelName = "";
//文件数量
@@ -888,12 +893,12 @@ namespace WebUI.Controllers
if (MD5Verify.getMD5Hash(operation.BytesToStream(operation.GetFile("Config/" + selectdata.HOTEL_GROUP_NAME + @"/" + selectdata.PROJECT_NUMBER + "-" + selectdata.HOTEL_NAME_CN + @"/" + selectdata.CONFIG_BIN))) == selectdata.CONFIG_BIN_MD5)
{
var sety = operation.GetFile("Config/" + selectdata.HOTEL_GROUP_NAME + @"/" + selectdata.PROJECT_NUMBER + "-" + selectdata.HOTEL_NAME_CN + @"/" + selectdata.CONFIG_BIN);
- var btys= operation.ByteArrayToHexStr(sety);
- var ssety= HexFile.Crc16(sety,4, sety.Length);
- byte[] suz= new byte[10000];
- var ssety2 = HexFile.NetCRC16_Data(sety, sety.Length, 4);
+ var btys = operation.ByteArrayToHexStr(sety);
+ var ssety = HexFile.Crc16(sety, 4, sety.Length);
+ byte[] suz = new byte[10000];
+ var ssety2 = HexFile.NetCRC16_Data(sety, sety.Length, 4);
- HexFile.StrToHex(suz ,sety, 100);
+ HexFile.StrToHex(suz, sety, 100);
//找到文件头
if ((sety[0] == 0xCC) && (sety[1] == 0xC0))
@@ -923,8 +928,8 @@ namespace WebUI.Controllers
var zunsons = vaslen.Skip(157).Take(64).ToArray();
var seyu = operation.ByteArrayToHexStr(zunsons);
var setysssy = operation.UnHexs(seyu);
- setysssy = setysssy.Replace("\0",null);
- setysssy = setysssy.Replace("_","-");
+ setysssy = setysssy.Replace("\0", null);
+ setysssy = setysssy.Replace("_", "-");
ModelName = setysssy;
//data = Convert.ToBase64String(sety);
FileName.Add(selectdata.CONFIG_BIN);
@@ -1237,7 +1242,7 @@ namespace WebUI.Controllers
eqlog.Succeed = Status;
foreach (var item in FileName)
{
- sum +=item+"/";
+ sum += item + "/";
}
eqlog.Content = "房间类型id是:" + RoomTypeid + ",升级类型是:" + DataType + ",luncher版本是:" + LuncherVer + ",升级文件名:" + sum + ",机型是:" + ModelName;
_db.TBL_EQUIPMENTISSUELOGs.AddRange(eqlog);
@@ -1261,16 +1266,16 @@ namespace WebUI.Controllers
}
}
- catch (Exception ex)
+ catch (Exception ex)
{
-
+
return Json(new
{
RoomTypeid,
RoomTypeName,
hotelId,
hotelName,
- Status =false,
+ Status = false,
ModelName,
FileCount,
datalist,
@@ -1307,7 +1312,7 @@ namespace WebUI.Controllers
var result = new StringBuilder(32);
for (int i = 0; i < lstHash.Length; i++)
{
- result.Append(lstHash[i].ToString("x2").ToUpper());
+ result.Append(lstHash[i].ToString("x2").ToUpper());
}
return result.ToString();
}
@@ -1583,16 +1588,17 @@ namespace WebUI.Controllers
[HttpPost]
[Route("OTApi/RoomChange")]
- public IActionResult RoomChange(string projectCode,string roomNumber,string roomLayout,string projectName)
+ public IActionResult RoomChange(string projectCode, string roomNumber, string roomLayout, string projectName)
{
var db = new DbHelperSQL(DbHelperSQL.DBSel.BLV_RCU_DB);
- if (!string.IsNullOrEmpty(projectCode)&& !string.IsNullOrEmpty(roomNumber)&& !string.IsNullOrEmpty(roomLayout)&&!string.IsNullOrEmpty(projectName))
+ if (!string.IsNullOrEmpty(projectCode) && !string.IsNullOrEmpty(roomNumber) && !string.IsNullOrEmpty(roomLayout) && !string.IsNullOrEmpty(projectName))
{
var selectdata = (
- from a in _db.TBL_HOTEL_BASIC_INFOS where a.HOTEL_NAME_CN == projectName
+ from a in _db.TBL_HOTEL_BASIC_INFOS
+ where a.HOTEL_NAME_CN == projectName
select new
{
- a.HOTEL_ID
+ a.HOTEL_ID
}).FirstOrDefault();
var roomdata = (
from a in _db.TBL_ROOM_TYPE_LISTS
@@ -1615,8 +1621,8 @@ namespace WebUI.Controllers
{
return Json(new
{
- retmsg="参数不可为空",
- retcode="404"
+ retmsg = "参数不可为空",
+ retcode = "404"
});
}
return Json("");
diff --git a/WebUI/NLog.xsd b/WebUI/NLog.xsd
new file mode 100644
index 0000000..8871c5c
--- /dev/null
+++ b/WebUI/NLog.xsd
@@ -0,0 +1,5317 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Watch config file for changes and reload automatically.
+
+
+
+
+ Print internal NLog messages to the console. Default value is: false
+
+
+
+
+ Print internal NLog messages to the console error output. Default value is: false
+
+
+
+
+ Write internal NLog messages to the specified file.
+
+
+
+
+ Log level threshold for internal log messages. Default value is: Info.
+
+
+
+
+ Global log level threshold for application log messages. Messages below this level won't be logged.
+
+
+
+
+ Throw an exception when there is an internal error. Default value is: false. Not recommend to set to true in production!
+
+
+
+
+ Throw an exception when there is a configuration error. If not set, determined by throwExceptions.
+
+
+
+
+ Gets or sets a value indicating whether Variables should be kept on configuration reload. Default value is: false.
+
+
+
+
+ Write internal NLog messages to the System.Diagnostics.Trace. Default value is: false.
+
+
+
+
+ Write timestamps for internal NLog messages. Default value is: true.
+
+
+
+
+ Use InvariantCulture as default culture instead of CurrentCulture. Default value is: false.
+
+
+
+
+ Perform message template parsing and formatting of LogEvent messages (true = Always, false = Never, empty = Auto Detect). Default value is: empty.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Make all targets within this section asynchronous (creates additional threads but the calling thread isn't blocked by any target writes).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Prefix for targets/layout renderers/filters/conditions loaded from this assembly.
+
+
+
+
+ Load NLog extensions from the specified file (*.dll)
+
+
+
+
+ Load NLog extensions from the specified assembly. Assembly name should be fully qualified.
+
+
+
+
+
+
+
+
+
+ Filter on the name of the logger. May include wildcard characters ('*' or '?').
+
+
+
+
+ Comma separated list of levels that this rule matches.
+
+
+
+
+ Minimum level that this rule matches.
+
+
+
+
+ Maximum level that this rule matches.
+
+
+
+
+ Level that this rule matches.
+
+
+
+
+ Comma separated list of target names.
+
+
+
+
+ Ignore further rules if this one matches.
+
+
+
+
+ Enable this rule. Note: disabled rules aren't available from the API.
+
+
+
+
+ Rule identifier to allow rule lookup with Configuration.FindRuleByName and Configuration.RemoveRuleByName.
+
+
+
+
+ Loggers matching will be restricted to specified minimum level for following rules.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Default action if none of the filters match.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name of the file to be included. You could use * wildcard. The name is relative to the name of the current config file.
+
+
+
+
+ Ignore any errors in the include file.
+
+
+
+
+
+
+
+ Variable value. Note, the 'value' attribute has precedence over this one.
+
+
+
+
+ Layout type variable value. Note, the 'value' attribute has precedence over this one.
+
+
+
+
+
+ Variable name.
+
+
+
+
+ Variable value.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name of the target.
+
+
+
+
+ Maximum number of log events that the buffer can keep.
+
+
+
+
+ Number of log events to be buffered.
+
+
+
+
+ Indicates whether buffer should grow as needed.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name of the target.
+
+
+
+
+ Layout used to format log messages.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name of the target.
+
+
+
+
+ Action to be taken when the lazy writer thread request queue count exceeds the set limit.
+
+
+
+
+ Limit on the number of requests in the lazy writer thread request queue.
+
+
+
+
+ Number of log events that should be processed in a batch by the lazy writer thread.
+
+
+
+
+ Whether to use the locking queue, instead of a lock-free concurrent queue
+
+
+
+
+ Number of batches of P:NLog.Targets.Wrappers.AsyncTargetWrapper.BatchSize to write before yielding into P:NLog.Targets.Wrappers.AsyncTargetWrapper.TimeToSleepBetweenBatches
+
+
+
+
+ Time in milliseconds to sleep between batches. (1 or less means trigger on new activity)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name of the target.
+
+
+
+
+ Name of the file to write to.
+
+
+
+
+ Header.
+
+
+
+
+ Footer.
+
+
+
+
+ Whether to write the Header on initial creation of file appender, even if the file is not empty. Default value is false, which means only write header when initial file is empty (Ex. ensures valid CSV files)
+
+
+
+
+ Indicates whether the footer should be written only when the file is archived.
+
+
+
+
+ Maximum days of archive files that should be kept. Zero or negative means disabled.
+
+
+
+
+ Format-string to convert archive sequence-number by using string.Format
+
+
+
+
+ Maximum number of archive files that should be kept. Negative means disabled.
+
+
+
+
+ Legacy archive logic where file-archive-logic moves active file to path specified by P:NLog.Targets.FileTarget.ArchiveFileName, and then recreates the active file. Use P:NLog.Targets.FileTarget.ArchiveSuffixFormat to control suffix format, instead of now obsolete token {#}
+
+
+
+
+ Indicates whether to trigger archive operation based on time-period, by moving active-file to file-path specified by P:NLog.Targets.FileTarget.ArchiveFileName
+
+
+
+
+ Size in bytes above which log files will be automatically archived. Zero or negative means disabled.
+
+
+
+
+ Indicates whether any existing log-file should be archived on startup.
+
+
+
+
+ Indicates whether concurrent writes to the log file by multiple processes on the same host.
+
+
+
+
+
+ Whether or not this target should just discard all data that its asked to write. Mostly used for when testing NLog Stack except final write
+
+
+
+
+ Indicates whether to write BOM (byte order mark) in created files.
+
+
+
+
+ Indicates whether to enable log file(s) to be deleted.
+
+
+
+
+ Indicates whether to delete old log file on startup.
+
+
+
+
+ Indicates whether to create directories if they do not exist.
+
+
+
+
+ File encoding.
+
+
+
+
+ Indicates whether to replace file contents on each write instead of appending log message at the end.
+
+
+
+
+ Line ending mode.
+
+
+
+
+ Maximum number of seconds that files are kept open. Zero or negative means disabled.
+
+
+
+
+ Log file buffer size in bytes.
+
+
+
+
+ Indicates whether to automatically flush the file buffers after each log message.
+
+
+
+
+ Indicates whether to keep log file open instead of opening and closing it on each logging event.
+
+
+
+
+ Maximum number of seconds before open files are flushed. Zero or negative means disabled.
+
+
+
+
+ Maximum number of files to be kept open.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name of the target.
+
+
+
+
+ Delay the flush until the LogEvent has been confirmed as written
+
+
+
+
+ Condition expression. Log events who meet this condition will cause a flush on the wrapped target.
+
+
+
+
+ Only flush when LogEvent matches condition. Ignore explicit-flush, config-reload-flush and shutdown-flush
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name of the target.
+
+
+
+
+ Number of log events to be buffered.
+
+
+
+
+ Action to take if the buffer overflows.
+
+
+
+
+ Timeout (in milliseconds) after which the contents of buffer will be flushed if there's no write in the specified period of time. Use -1 to disable timed flushes.
+
+
+
+
+ Indicates whether to use sliding timeout.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name of the target.
+
+
+
+
+ Header.
+
+
+
+
+ Footer.
+
+
+
+
+ Indicates whether to auto-check if the console is available. - Disables console writing if Environment.UserInteractive = false (Windows Service) - Disables console writing if Console Standard Input is not available (Non-Console-App)
+
+
+
+
+ Enables output using ANSI Color Codes
+
+
+
+
+ The encoding for writing messages to the T:System.Console.
+
+
+
+
+ Support NO_COLOR=1 environment variable. See also https://no-color.org/
+
+
+
+
+ Indicates whether to send the log messages to the standard error instead of the standard output.
+
+
+
+
+ Indicates whether to auto-flush after M:System.Console.WriteLine
+
+
+
+
+ Indicates whether to auto-check if the console has been redirected to file - Disables coloring logic when System.Console.IsOutputRedirected = true
+
+
+
+
+ Indicates whether to use default row highlighting rules.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Background color.
+
+
+
+
+ Condition that must be met in order to set the specified foreground and background color.
+
+
+
+
+ Foreground color.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Background color.
+
+
+
+
+ Condition that must be met before scanning the row for highlight of words
+
+
+
+
+ Foreground color.
+
+
+
+
+ Indicates whether to ignore case when comparing texts.
+
+
+
+
+ Text to be matched for Highlighting.
+
+
+
+
+ Indicates whether to match whole words only.
+
+
+
+
+ List of words to be matched for Highlighting.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name of the target.
+
+
+
+
+ Header.
+
+
+
+
+ Footer.
+
+
+
+
+ Indicates whether to auto-flush after M:System.Console.WriteLine
+
+
+
+
+ Indicates whether to auto-check if the console is available - Disables console writing if Environment.UserInteractive = false (Windows Service) - Disables console writing if Console Standard Input is not available (Non-Console-App)
+
+
+
+
+ The encoding for writing messages to the T:System.Console.
+
+
+
+
+ Whether to force M:System.Console.WriteLine (slower) instead of the faster internal buffering.
+
+
+
+
+ Indicates whether to send the log messages to the standard error instead of the standard output.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name of the target.
+
+
+
+
+ Database user name. If the ConnectionString is not provided this value will be used to construct the "User ID=" part of the connection string.
+
+
+
+
+ Database password. If the ConnectionString is not provided this value will be used to construct the "Password=" part of the connection string.
+
+
+
+
+ Database name. If the ConnectionString is not provided this value will be used to construct the "Database=" part of the connection string.
+
+
+
+
+ Name of the connection string (as specified in <connectionStrings> configuration section.
+
+
+
+
+ Database host name. If the ConnectionString is not provided this value will be used to construct the "Server=" part of the connection string.
+
+
+
+
+ Indicates whether to keep the database connection open between the log events.
+
+
+
+
+ Name of the database provider.
+
+
+
+
+ Connection string. When provided, it overrides the values specified in DBHost, DBUserName, DBPassword, DBDatabase.
+
+
+
+
+ Connection string using for installation and uninstallation. If not provided, regular ConnectionString is being used.
+
+
+
+
+ Configures isolated transaction batch writing. If supported by the database, then it will improve insert performance.
+
+
+
+
+ Text of the SQL command to be run on each log level.
+
+
+
+
+ Type of the SQL command to be run on each log level.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Convert format of the property value
+
+
+
+
+ Culture used for parsing property string-value for type-conversion
+
+
+
+
+ Value to assign on the object-property
+
+
+
+
+ Name for the object-property
+
+
+
+
+ Type of the object-property
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Type of the command.
+
+
+
+
+ Connection string to run the command against. If not provided, connection string from the target is used.
+
+
+
+
+ Indicates whether to ignore failures.
+
+
+
+
+ Command text.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Database parameter name.
+
+
+
+
+ Layout used for rendering the database-parameter value.
+
+
+
+
+ Database parameter DbType.
+
+
+
+
+ Database parameter size.
+
+
+
+
+ Database parameter precision.
+
+
+
+
+ Database parameter scale.
+
+
+
+
+ Type of the parameter.
+
+
+
+
+ Fallback value when result value is not available
+
+
+
+
+ Convert format of the database parameter value.
+
+
+
+
+ Culture used for parsing parameter string-value for type-conversion
+
+
+
+
+ Whether empty value should translate into DbNull. Requires database column to allow NULL values.
+
+
+
+
+ Database parameter DbType (without reflection logic)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name of the target.
+
+
+
+
+ Header.
+
+
+
+
+ Footer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name of the target.
+
+
+
+
+ Header.
+
+
+
+
+ Footer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name of the target.
+
+
+
+
+ Layout used to format log messages.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name of the target.
+
+
+
+
+
+ Indicates whether to include call site (class and method name) in the T:NLog.LogEventInfo
+
+
+
+
+ Indicates whether to include source info (file name and line number) in the T:NLog.LogEventInfo
+
+
+
+
+ Option to include all properties from the log events
+
+
+
+
+ Indicates whether to include contents of the T:NLog.GlobalDiagnosticsContext dictionary
+
+
+
+
+ Whether to include the contents of the T:NLog.ScopeContext nested-state-stack.
+
+
+
+
+ Whether to include the contents of the T:NLog.ScopeContext properties-dictionary.
+
+
+
+
+ List of property names to exclude when P:NLog.Targets.TargetWithContext.IncludeEventProperties is true
+
+
+
+
+ Event Name for M:System.Diagnostics.DiagnosticSource.Write(System.String,System.Object)
+
+
+
+
+ Value for Event Payload Level-Property
+
+
+
+
+ Source Name for T:System.Diagnostics.DiagnosticSource
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name of the property.
+
+
+
+
+ Layout used for rendering the property value.
+
+
+
+
+ Fallback value when result value is not available
+
+
+
+
+ Whether empty property value should be included in the output.
+
+
+
+
+ Type of the property.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name of the target.
+
+
+
+
+ Layout used to format log messages.
+
+
+
+
+ Layout that renders event Category.
+
+
+
+
+ Optional entry type. When not set, or when not convertible to T:System.Diagnostics.EventLogEntryType then determined by T:NLog.LogLevel
+
+
+
+
+ Layout that renders event ID.
+
+
+
+
+ Name of the Event Log to write to. This can be System, Application or any user-defined name.
+
+
+
+
+ Name of the machine on which Event Log service is running.
+
+
+
+
+ Maximum Event log size in kilobytes.
+
+
+
+
+ Message length limit to write to the Event Log.
+
+
+
+
+ Value to be used as the event Source.
+
+
+
+
+ Action to take if the message is larger than the P:NLog.Targets.EventLogTarget.MaxMessageLength option.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name of the target.
+
+
+
+
+ Indicates whether to return to the first target after any successful write.
+
+
+
+
+ Whether to enable batching, but fallback will be handled individually
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name of the target.
+
+
+
+
+ Name of the file to write to.
+
+
+
+
+ Header.
+
+
+
+
+ Footer.
+
+
+
+
+ Size in bytes above which log files will be automatically archived. Zero or negative means disabled.
+
+
+
+
+ Indicates whether to trigger archive operation based on time-period, by moving active-file to file-path specified by P:NLog.Targets.FileTarget.ArchiveFileName
+
+
+
+
+ Legacy archive logic where file-archive-logic moves active file to path specified by P:NLog.Targets.FileTarget.ArchiveFileName, and then recreates the active file. Use P:NLog.Targets.FileTarget.ArchiveSuffixFormat to control suffix format, instead of now obsolete token {#}
+
+
+
+
+ Indicates whether any existing log-file should be archived on startup.
+
+
+
+
+ Format-string to convert archive sequence-number by using string.Format
+
+
+
+
+ Maximum days of archive files that should be kept. Zero or negative means disabled.
+
+
+
+
+ Maximum number of archive files that should be kept. Negative means disabled.
+
+
+
+
+ Indicates whether the footer should be written only when the file is archived.
+
+
+
+
+ Whether to write the Header on initial creation of file appender, even if the file is not empty. Default value is false, which means only write header when initial file is empty (Ex. ensures valid CSV files)
+
+
+
+
+
+ File encoding.
+
+
+
+
+ Indicates whether to create directories if they do not exist.
+
+
+
+
+ Indicates whether to delete old log file on startup.
+
+
+
+
+ Indicates whether to enable log file(s) to be deleted.
+
+
+
+
+ Indicates whether to write BOM (byte order mark) in created files.
+
+
+
+
+ Whether or not this target should just discard all data that its asked to write. Mostly used for when testing NLog Stack except final write
+
+
+
+
+ Line ending mode.
+
+
+
+
+ Indicates whether to replace file contents on each write instead of appending log message at the end.
+
+
+
+
+ Maximum number of files to be kept open.
+
+
+
+
+ Indicates whether to automatically flush the file buffers after each log message.
+
+
+
+
+ Log file buffer size in bytes.
+
+
+
+
+ Maximum number of seconds that files are kept open. Zero or negative means disabled.
+
+
+
+
+ Maximum number of seconds before open files are flushed. Zero or negative means disabled.
+
+
+
+
+ Indicates whether to keep log file open instead of opening and closing it on each logging event.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name of the target.
+
+
+
+
+ Condition expression. Log events who meet this condition will be forwarded to the wrapped target.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name of the target.
+
+
+
+
+ Layout used to format log messages.
+
+
+
+
+ Indicates whether log text should be appended to the text of the control instead of overwriting it.
+
+
+
+
+ Name of control to which NLog will log write log text.
+
+
+
+
+ Name of the Form on which the control is located.
+
+
+
+
+ Whether new log entry are added to the start or the end of the control
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name of the target.
+
+
+
+
+ Password for the custom SSL certificate specified by P:NLog.Targets.NetworkTarget.SslCertificateFile
+
+
+
+
+ File path to custom SSL certificate for TCP Socket SSL connections
+
+
+
+
+ SSL/TLS protocols. Default no SSL/TLS is used. Currently only implemented for TCP.
+
+
+
+
+ The number of seconds a TCP socket send-operation will block before timeout error. Default = 100 secs (0 = wait forever when network cable unplugged and tcp-buffer becomes full).
+
+
+
+
+ Action that should be taken if the message is larger than P:NLog.Targets.NetworkTarget.MaxMessageSize
+
+
+
+
+ Action that should be taken, when more connections than P:NLog.Targets.NetworkTarget.MaxConnections.
+
+
+
+
+ Action that should be taken, when more pending messages than P:NLog.Targets.NetworkTarget.MaxQueueSize.
+
+
+
+
+ Maximum simultaneous connections. Requires P:NLog.Targets.NetworkTarget.KeepConnection = false
+
+
+
+
+ Indicates whether to keep connection open whenever possible.
+
+
+
+
+ The number of seconds a connection will remain idle before the first keep-alive probe is sent
+
+
+
+
+ Size of the connection cache (number of connections which are kept alive). Requires P:NLog.Targets.NetworkTarget.KeepConnection = true
+
+
+
+
+ Network destination address.
+
+
+
+
+ Maximum queue size for a single connection. Requires P:NLog.Targets.NetworkTarget.KeepConnection = true
+
+
+
+
+
+ Whether to disable the delayed ACK timer, and avoid delay of 200 ms.
+
+
+
+
+
+
+
+
+ Type of compression for protocol payload. Useful for UDP where datagram max-size is 8192 bytes.
+
+
+
+
+
+
+ Skip compression when protocol payload is below limit to reduce overhead in cpu-usage and additional headers
+
+
+
+
+
+ Maximum message size in bytes. On limit breach then P:NLog.Targets.NetworkTarget.OnOverflow action is activated.
+
+
+
+
+ Encoding to be used.
+
+
+
+
+ End of line value if a newline is appended at the end of log message P:NLog.Targets.NetworkTarget.NewLine.
+
+
+
+
+ Indicates whether to append newline at the end of log message.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name of the target.
+
+
+
+
+ Identifier to perform group-by
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name of the target.
+
+
+
+
+ Name of the file to write to.
+
+
+
+
+ Header.
+
+
+
+
+ Footer.
+
+
+
+
+ Whether to write the Header on initial creation of file appender, even if the file is not empty. Default value is false, which means only write header when initial file is empty (Ex. ensures valid CSV files)
+
+
+
+
+ Indicates whether the footer should be written only when the file is archived.
+
+
+
+
+ Maximum days of archive files that should be kept. Zero or negative means disabled.
+
+
+
+
+ Format-string to convert archive sequence-number by using string.Format
+
+
+
+
+ Maximum number of archive files that should be kept. Negative means disabled.
+
+
+
+
+ Legacy archive logic where file-archive-logic moves active file to path specified by P:NLog.Targets.FileTarget.ArchiveFileName, and then recreates the active file. Use P:NLog.Targets.FileTarget.ArchiveSuffixFormat to control suffix format, instead of now obsolete token {#}
+
+
+
+
+ Indicates whether to trigger archive operation based on time-period, by moving active-file to file-path specified by P:NLog.Targets.FileTarget.ArchiveFileName
+
+
+
+
+ Size in bytes above which log files will be automatically archived. Zero or negative means disabled.
+
+
+
+
+ Indicates whether any existing log-file should be archived on startup.
+
+
+
+
+ Whether to enable file-compression using T:System.IO.Compression.GZipStream
+
+
+
+
+ Whether to emphasize Fastest-speed or Optimal-compression
+
+
+
+
+
+ Whether or not this target should just discard all data that its asked to write. Mostly used for when testing NLog Stack except final write
+
+
+
+
+ Indicates whether to write BOM (byte order mark) in created files.
+
+
+
+
+ Indicates whether to enable log file(s) to be deleted.
+
+
+
+
+ Indicates whether to delete old log file on startup.
+
+
+
+
+ Indicates whether to create directories if they do not exist.
+
+
+
+
+ File encoding.
+
+
+
+
+ Indicates whether to replace file contents on each write instead of appending log message at the end.
+
+
+
+
+ Line ending mode.
+
+
+
+
+ Maximum number of seconds that files are kept open. Zero or negative means disabled.
+
+
+
+
+ Log file buffer size in bytes.
+
+
+
+
+ Indicates whether to automatically flush the file buffers after each log message.
+
+
+
+
+ Indicates whether to keep log file open instead of opening and closing it on each logging event.
+
+
+
+
+ Maximum number of seconds before open files are flushed. Zero or negative means disabled.
+
+
+
+
+ Maximum number of files to be kept open.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name of the target.
+
+
+
+
+ Windows domain name to change context to.
+
+
+
+
+ Required impersonation level.
+
+
+
+
+ Type of the logon provider.
+
+
+
+
+ Logon Type.
+
+
+
+
+ User account password.
+
+
+
+
+ Indicates whether to revert to the credentials of the process instead of impersonating another user.
+
+
+
+
+ Username to change context to.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name of the target.
+
+
+
+
+ Interval in which messages will be written up to the P:NLog.Targets.Wrappers.LimitingTargetWrapper.MessageLimit number of messages.
+
+
+
+
+ Maximum allowed number of messages written per P:NLog.Targets.Wrappers.LimitingTargetWrapper.Interval.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name of the target.
+
+
+
+
+ Separator for T:NLog.ScopeContext operation-states-stack.
+
+
+
+
+ Stack separator for log4j:NDC in output from T:NLog.ScopeContext nested context.
+
+
+
+
+ Log4j:event logger-xml-attribute. Default: ${logger}
+
+
+
+
+ Whether to include the contents of the T:NLog.ScopeContext properties-dictionary.
+
+
+
+
+ Whether to include log4j:NDC in output from T:NLog.ScopeContext nested context.
+
+
+
+
+ Indicates whether to include source info (file name and line number) in the information sent over the network.
+
+
+
+
+ Option to include all properties from the log events
+
+
+
+
+ Indicates whether to include call site (class and method name) in the information sent over the network.
+
+
+
+
+ Log4j:event message-xml-element. Default: ${message}
+
+
+
+
+ Log4j:event log4japp-xml-element. By default it's the friendly name of the current AppDomain.
+
+
+
+
+ Instance of T:NLog.Layouts.Log4JXmlEventLayout that is used to format log messages.
+
+
+
+
+ Whether to include log4j:NDC in output from T:NLog.ScopeContext nested context.
+
+
+
+
+ Action that should be taken, when more pending messages than P:NLog.Targets.NetworkTarget.MaxQueueSize.
+
+
+
+
+ Password for the custom SSL certificate specified by P:NLog.Targets.NetworkTarget.SslCertificateFile
+
+
+
+
+ File path to custom SSL certificate for TCP Socket SSL connections
+
+
+
+
+ SSL/TLS protocols. Default no SSL/TLS is used. Currently only implemented for TCP.
+
+
+
+
+ The number of seconds a TCP socket send-operation will block before timeout error. Default = 100 secs (0 = wait forever when network cable unplugged and tcp-buffer becomes full).
+
+
+
+
+ Action that should be taken if the message is larger than P:NLog.Targets.NetworkTarget.MaxMessageSize
+
+
+
+
+ The number of seconds a connection will remain idle before the first keep-alive probe is sent
+
+
+
+
+ Maximum queue size for a single connection. Requires P:NLog.Targets.NetworkTarget.KeepConnection = true
+
+
+
+
+ Maximum simultaneous connections. Requires P:NLog.Targets.NetworkTarget.KeepConnection = false
+
+
+
+
+ Indicates whether to keep connection open whenever possible.
+
+
+
+
+ Size of the connection cache (number of connections which are kept alive). Requires P:NLog.Targets.NetworkTarget.KeepConnection = true
+
+
+
+
+ Network destination address.
+
+
+
+
+ Action that should be taken, when more connections than P:NLog.Targets.NetworkTarget.MaxConnections.
+
+
+
+
+ Type of compression for protocol payload. Useful for UDP where datagram max-size is 8192 bytes.
+
+
+
+
+ Skip compression when protocol payload is below limit to reduce overhead in cpu-usage and additional headers
+
+
+
+
+ Whether to disable the delayed ACK timer, and avoid delay of 200 ms.
+
+
+
+
+ Maximum message size in bytes. On limit breach then P:NLog.Targets.NetworkTarget.OnOverflow action is activated.
+
+
+
+
+ Encoding to be used.
+
+
+
+
+ End of line value if a newline is appended at the end of log message P:NLog.Targets.NetworkTarget.NewLine.
+
+
+
+
+ Indicates whether to append newline at the end of log message.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Log4j:data property-name.
+
+
+
+
+ Layout used for rendering the log4j:data property-value.
+
+
+
+
+ Whether empty property-value should be included in the output. Default = false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name of the target.
+
+
+
+
+ Endpoint address.
+
+
+
+
+ Name of the endpoint configuration in WCF configuration file.
+
+
+
+
+ Indicates whether to use a WCF service contract that is one way (fire and forget) or two way (request-reply)
+
+
+
+
+ Client ID.
+
+
+
+
+ Indicates whether to include per-event properties in the payload sent to the server.
+
+
+
+
+ Indicates whether to use binary message encoding.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name of the parameter.
+
+
+
+
+ Layout used for rendering the method-parameter value.
+
+
+
+
+ Fallback value when result value is not available
+
+
+
+
+ Type of the parameter.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name of the target.
+
+
+
+
+ Header.
+
+
+
+
+ Footer.
+
+
+
+
+ Priority used for sending mails.
+
+
+
+
+ Indicates whether to add new lines between log entries.
+
+
+
+
+ Encoding to be used for sending e-mail.
+
+
+
+
+ BCC email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com).
+
+
+
+
+ Indicates whether NewLine characters in the body should be replaced with tags.
+
+
+
+
+ Recipients' email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com).
+
+
+
+
+ Indicates whether to send message as HTML instead of plain text.
+
+
+
+
+ Sender's email address (e.g. joe@domain.com).
+
+
+
+
+ Mail message body (repeated for each log message send in one mail).
+
+
+
+
+ Mail subject.
+
+
+
+
+ CC email addresses separated by semicolons (e.g. john@domain.com;jane@domain.com).
+
+
+
+
+
+ Folder where applications save mail messages to be processed by the local SMTP server.
+
+
+
+
+ Indicates the SMTP client timeout.
+
+
+
+
+ Indicates whether SmtpClient should ignore invalid certificate.
+
+
+
+
+ Port number that SMTP Server is listening on.
+
+
+
+
+ Provides a way of specifying the SSL and/or TLS encryption If P:NLog.MailKit.MailTarget.EnableSsl is true, then F:MailKit.Security.SecureSocketOptions.SslOnConnect will be used.
+
+
+
+
+ Password used to authenticate against SMTP server (used when SmtpAuthentication is set to "basic").
+
+
+
+
+ Indicates whether SSL (secure sockets layer) should be used when communicating with SMTP server.
+
+
+
+
+ Username used to connect to SMTP server (used when SmtpAuthentication is set to "basic").
+
+
+
+
+ SMTP Authentication mode.
+
+
+
+
+ SMTP Server to be used for sending.
+
+
+
+
+ Indicates whether the default Settings from System.Net.MailSettings should be used.
+
+
+
+
+ Get or set whether the client should use the REQUIRETLS extension if it is available.
+
+
+
+
+ Specifies how outgoing email messages will be handled.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name of the target.
+
+
+
+
+ Header.
+
+
+
+
+ Footer.
+
+
+
+
+ Max number of items to have in memory. Zero or Negative means no limit.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name of the target.
+
+
+
+
+ Layout used to format log messages.
+
+
+
+
+ Message box title.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name of the target.
+
+
+
+
+ Layout used to format log messages.
+
+
+
+
+ Encoding to be used when writing text to the queue.
+
+
+
+
+ Indicates whether to use the XML format when serializing message.
+
+
+
+
+ Indicates whether to check if a queue exists before writing to it.
+
+
+
+
+ Indicates whether to create the queue if it doesn't exists.
+
+
+
+
+ Label to associate with each message.
+
+
+
+
+ Name of the queue to write to.
+
+
+
+
+ Indicates whether to use recoverable messages (with guaranteed delivery).
+
+
+
+
+ Indicates whether sending to a transactional queue using single-transaction-style.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name of the target.
+
+
+
+
+ Class name.
+
+
+
+
+ Method name. The method must be public and static. Use the AssemblyQualifiedName - https://learn.microsoft.com/dotnet/api/system.type.assemblyqualifiedname
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name of the target.
+
+
+
+
+
+ Indicates whether to include call site (class and method name) in the T:NLog.LogEventInfo
+
+
+
+
+ Indicates whether to include source info (file name and line number) in the T:NLog.LogEventInfo
+
+
+
+
+ Option to include all properties from the log events
+
+
+
+
+ Indicates whether to include contents of the T:NLog.GlobalDiagnosticsContext dictionary
+
+
+
+
+ Whether to include the contents of the T:NLog.ScopeContext nested-state-stack.
+
+
+
+
+ Whether to include the contents of the T:NLog.ScopeContext properties-dictionary.
+
+
+
+
+ List of property names to exclude when P:NLog.Targets.TargetWithContext.IncludeEventProperties is true
+
+
+
+
+ EventId forwarded to ILogger
+
+
+
+
+ EventId-Name forwarded to ILogger
+
+
+
+
+ Override name of ILogger, when target has been initialized with T:Microsoft.Extensions.Logging.ILoggerFactory
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name of the target.
+
+
+
+
+ Layout used to format log messages.
+
+
+
+
+ Password for the custom SSL certificate specified by P:NLog.Targets.NetworkTarget.SslCertificateFile
+
+
+
+
+ File path to custom SSL certificate for TCP Socket SSL connections
+
+
+
+
+ SSL/TLS protocols. Default no SSL/TLS is used. Currently only implemented for TCP.
+
+
+
+
+ The number of seconds a TCP socket send-operation will block before timeout error. Default = 100 secs (0 = wait forever when network cable unplugged and tcp-buffer becomes full).
+
+
+
+
+ Action that should be taken if the message is larger than P:NLog.Targets.NetworkTarget.MaxMessageSize
+
+
+
+
+ Action that should be taken, when more connections than P:NLog.Targets.NetworkTarget.MaxConnections.
+
+
+
+
+ Action that should be taken, when more pending messages than P:NLog.Targets.NetworkTarget.MaxQueueSize.
+
+
+
+
+ Maximum simultaneous connections. Requires P:NLog.Targets.NetworkTarget.KeepConnection = false
+
+
+
+
+ Indicates whether to keep connection open whenever possible.
+
+
+
+
+ The number of seconds a connection will remain idle before the first keep-alive probe is sent
+
+
+
+
+ Size of the connection cache (number of connections which are kept alive). Requires P:NLog.Targets.NetworkTarget.KeepConnection = true
+
+
+
+
+ Network destination address.
+
+
+
+
+ Maximum queue size for a single connection. Requires P:NLog.Targets.NetworkTarget.KeepConnection = true
+
+
+
+
+ Type of compression for protocol payload. Useful for UDP where datagram max-size is 8192 bytes.
+
+
+
+
+ Skip compression when protocol payload is below limit to reduce overhead in cpu-usage and additional headers
+
+
+
+
+ Whether to disable the delayed ACK timer, and avoid delay of 200 ms.
+
+
+
+
+ Maximum message size in bytes. On limit breach then P:NLog.Targets.NetworkTarget.OnOverflow action is activated.
+
+
+
+
+ Encoding to be used.
+
+
+
+
+ End of line value if a newline is appended at the end of log message P:NLog.Targets.NetworkTarget.NewLine.
+
+
+
+
+ Indicates whether to append newline at the end of log message.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name of the target.
+
+
+
+
+ Layout used to format log messages.
+
+
+
+
+ Indicates whether to render P:NLog.Targets.TargetWithLayout.Layout for LogEvent
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name of the target.
+
+
+
+
+ Header.
+
+
+
+
+ Footer.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name of the target.
+
+
+
+
+ Indicates whether performance counter should be automatically created.
+
+
+
+
+ Name of the performance counter category.
+
+
+
+
+ Counter help text.
+
+
+
+
+ Name of the performance counter.
+
+
+
+
+ Performance counter type.
+
+
+
+
+ The value by which to increment the counter.
+
+
+
+
+ Performance counter instance name.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name of the target.
+
+
+
+
+ Default filter to be applied when no specific rule matches.
+
+
+
+
+
+
+
+
+
+
+
+
+ Condition to be tested.
+
+
+
+
+ Resulting filter to be applied when the condition matches.
+
+
+
+
+
+
+
+
+
+
+
+ Name of the target.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name of the target.
+
+
+
+
+ Number of times to repeat each log message.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name of the target.
+
+
+
+
+ Whether to enable batching, and only apply single delay when a whole batch fails
+
+
+
+
+ Number of retries that should be attempted on the wrapped target in case of a failure.
+
+
+
+
+ Time to wait between retries in milliseconds.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name of the target.
+
+
+
+
+ Layout used to format log messages.
+
+
+
+
+ Initial width of the form with rich text box.
+
+
+
+
+ Indicates whether the created window will be a tool window.
+
+
+
+
+ Indicates whether the created form will be initially minimized.
+
+
+
+
+ Maximum number of lines the rich text box will store (or 0 to disable this feature).
+
+
+
+
+ gets or sets the message retention strategy which determines how the target handles messages when there's no control attached, or when switching between controls
+
+
+
+
+ Name of the Form on which the control is located. If there is no open form of a specified name than NLog will create a new one.
+
+
+
+
+ Name of RichTextBox to which Nlog will write.
+
+
+
+
+ Indicates whether scroll bar will be moved automatically to show most recent log entries.
+
+
+
+
+ Indicates whether to create accessory form if the specified form/control combination was not found during target initialization.
+
+
+
+
+ Initial height of the form with rich text box.
+
+
+
+
+ Indicates whether to use default coloring rules.
+
+
+
+
+ Form created (true) or used an existing (false). Set after M:NLog.Windows.Forms.RichTextBoxTarget.InitializeTarget. Can be true only if P:NLog.Windows.Forms.RichTextBoxTarget.AllowAccessoryFormCreation is set to true (default).
+
+
+
+
+ If set to true, using "rtb-link" renderer (T:NLog.Windows.Forms.RichTextBoxLinkLayoutRenderer) would create clickable links in the control. E:NLog.Windows.Forms.RichTextBoxTarget.LinkClicked
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Background color.
+
+
+
+
+ Font color.
+
+
+
+
+ Font style of matched text.
+
+
+
+
+ Condition that must be met in order to set the specified font color.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Background color. Names are identical with KnownColor enum extended with Empty value which means that background color won't be changed.
+
+
+
+
+ Font color. Names are identical with KnownColor enum extended with Empty value which means that font color won't be changed.
+
+
+
+
+ Font style of matched text. Possible values are the same as in FontStyle enum in System.Drawing.
+
+
+
+
+ Indicates whether to ignore case when comparing texts.
+
+
+
+
+ Regular expression to be matched. You must specify either text or regex.
+
+
+
+
+ Text to be matched. You must specify either text or regex.
+
+
+
+
+ Indicates whether to match whole words only.
+
+
+
+
+
+
+
+
+
+
+
+ Name of the target.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name of the target.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name of the target.
+
+
+
+
+ Password for the custom SSL certificate specified by P:NLog.Targets.NetworkTarget.SslCertificateFile
+
+
+
+
+ File path to custom SSL certificate for TCP Socket SSL connections
+
+
+
+
+ SSL/TLS protocols. Default no SSL/TLS is used. Currently only implemented for TCP.
+
+
+
+
+ The number of seconds a TCP socket send-operation will block before timeout error. Default = 100 secs (0 = wait forever when network cable unplugged and tcp-buffer becomes full).
+
+
+
+
+ Action that should be taken if the message is larger than P:NLog.Targets.NetworkTarget.MaxMessageSize
+
+
+
+
+ Action that should be taken, when more connections than P:NLog.Targets.NetworkTarget.MaxConnections.
+
+
+
+
+ Action that should be taken, when more pending messages than P:NLog.Targets.NetworkTarget.MaxQueueSize.
+
+
+
+
+ Maximum simultaneous connections. Requires P:NLog.Targets.NetworkTarget.KeepConnection = false
+
+
+
+
+ Indicates whether to keep connection open whenever possible.
+
+
+
+
+ The number of seconds a connection will remain idle before the first keep-alive probe is sent
+
+
+
+
+ Size of the connection cache (number of connections which are kept alive). Requires P:NLog.Targets.NetworkTarget.KeepConnection = true
+
+
+
+
+ Network destination address.
+
+
+
+
+ Maximum queue size for a single connection. Requires P:NLog.Targets.NetworkTarget.KeepConnection = true
+
+
+
+
+
+
+
+
+ Whether to disable the delayed ACK timer, and avoid delay of 200 ms.
+
+
+
+
+ Skip compression when protocol payload is below limit to reduce overhead in cpu-usage and additional headers
+
+
+
+
+
+
+
+
+ Type of compression for protocol payload. Useful for UDP where datagram max-size is 8192 bytes.
+
+
+
+
+
+ Maximum message size in bytes. On limit breach then P:NLog.Targets.NetworkTarget.OnOverflow action is activated.
+
+
+
+
+ Encoding to be used.
+
+
+
+
+ End of line value if a newline is appended at the end of log message P:NLog.Targets.NetworkTarget.NewLine.
+
+
+
+
+ Indicates whether to append newline at the end of log message.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name of the attribute.
+
+
+
+
+ Layout used for rendering the attribute value.
+
+
+
+
+ Fallback value when result value is not available
+
+
+
+
+ Whether output should be encoded as Json-String-Property, or be treated as valid json.
+
+
+
+
+ Indicates whether to escape non-ascii characters
+
+
+
+
+ Whether empty attribute value should be included in the output.
+
+
+
+
+ Result value type, for conversion of layout rendering output
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name of the target.
+
+
+
+
+ Password for the custom SSL certificate specified by P:NLog.Targets.NetworkTarget.SslCertificateFile
+
+
+
+
+ File path to custom SSL certificate for TCP Socket SSL connections
+
+
+
+
+ SSL/TLS protocols. Default no SSL/TLS is used. Currently only implemented for TCP.
+
+
+
+
+ Action that should be taken, when more pending messages than P:NLog.Targets.NetworkTarget.MaxQueueSize.
+
+
+
+
+ Action that should be taken if the message is larger than P:NLog.Targets.NetworkTarget.MaxMessageSize
+
+
+
+
+ Action that should be taken, when more connections than P:NLog.Targets.NetworkTarget.MaxConnections.
+
+
+
+
+ The number of seconds a TCP socket send-operation will block before timeout error. Default = 100 secs (0 = wait forever when network cable unplugged and tcp-buffer becomes full).
+
+
+
+
+ Maximum simultaneous connections. Requires P:NLog.Targets.NetworkTarget.KeepConnection = false
+
+
+
+
+ Indicates whether to keep connection open whenever possible.
+
+
+
+
+ The number of seconds a connection will remain idle before the first keep-alive probe is sent
+
+
+
+
+ Size of the connection cache (number of connections which are kept alive). Requires P:NLog.Targets.NetworkTarget.KeepConnection = true
+
+
+
+
+ Network destination address.
+
+
+
+
+ Maximum queue size for a single connection. Requires P:NLog.Targets.NetworkTarget.KeepConnection = true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Whether to disable the delayed ACK timer, and avoid delay of 200 ms.
+
+
+
+
+
+ Skip compression when protocol payload is below limit to reduce overhead in cpu-usage and additional headers
+
+
+
+
+ Type of compression for protocol payload. Useful for UDP where datagram max-size is 8192 bytes.
+
+
+
+
+ Maximum message size in bytes. On limit breach then P:NLog.Targets.NetworkTarget.OnOverflow action is activated.
+
+
+
+
+ Encoding to be used.
+
+
+
+
+ End of line value if a newline is appended at the end of log message P:NLog.Targets.NetworkTarget.NewLine.
+
+
+
+
+ Indicates whether to append newline at the end of log message.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name of the target.
+
+
+
+
+ Layout used to format log messages.
+
+
+
+
+ Name of the Form on which the ToolStrip is located.
+
+
+
+
+ Name of the ToolStripItem to which NLog will log write log text.
+
+
+
+
+ Name of ToolStrip that contains the ToolStripItem to which NLog will log write log text.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name of the target.
+
+
+
+
+ Header.
+
+
+
+
+ Footer.
+
+
+
+
+
+ Forward F:NLog.LogLevel.Fatal to M:System.Diagnostics.Trace.Fail(System.String) (Instead of M:System.Diagnostics.Trace.TraceError(System.String))
+
+
+
+
+ Force use M:System.Diagnostics.Trace.WriteLine(System.String) independent of T:NLog.LogLevel
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name of the target.
+
+
+
+
+ Encoding.
+
+
+
+
+ Should we include the BOM (Byte-order-mark) for UTF? Influences the P:NLog.Targets.WebServiceTarget.Encoding property. This will only work for UTF-8.
+
+
+
+
+ Web service method name. Only used with Soap.
+
+
+
+
+ Web service namespace. Only used with Soap.
+
+
+
+
+ Protocol to be used when calling web service.
+
+
+
+
+ Custom proxy address, include port separated by a colon
+
+
+
+
+ Proxy configuration when calling web service
+
+
+
+
+ Web service URL.
+
+
+
+
+ Value of the User-agent HTTP header.
+
+
+
+
+ Indicates whether to pre-authenticate the HttpWebRequest (Requires 'Authorization' in P:NLog.Targets.WebServiceTarget.Headers parameters)
+
+
+
+
+ Name of the root XML element, if POST of XML document chosen. If so, this property must not be null. (see P:NLog.Targets.WebServiceTarget.Protocol and F:NLog.Targets.WebServiceProtocol.XmlPost).
+
+
+
+
+ (optional) root namespace of the XML document, if POST of XML document chosen. (see P:NLog.Targets.WebServiceTarget.Protocol and F:NLog.Targets.WebServiceProtocol.XmlPost).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Custom column delimiter value (valid when P:NLog.Layouts.CsvLayout.Delimiter is set to F:NLog.Layouts.CsvColumnDelimiterMode.Custom).
+
+
+
+
+ Column delimiter.
+
+
+
+
+ Footer layout.
+
+
+
+
+ Header layout.
+
+
+
+
+ Body layout (can be repeated multiple times).
+
+
+
+
+ Quote Character.
+
+
+
+
+ Quoting mode.
+
+
+
+
+ Indicates whether CSV should include header.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name of the column.
+
+
+
+
+ Layout used for rendering the column value.
+
+
+
+
+ Override of Quoting mode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Option to exclude null/empty properties from the log event (as JSON)
+
+
+
+
+ List of property names to exclude when P:NLog.Layouts.GelfLayout.IncludeEventProperties is true
+
+
+
+
+ Whether to activate the legacy Graylog Message Facility-field
+
+
+
+
+ Graylog Message Full-Message-field
+
+
+
+
+ Graylog Message Host-field
+
+
+
+
+ Graylog Message Short-Message-field
+
+
+
+
+ Option to include all properties from the log events
+
+
+
+
+ List of property names to include when P:NLog.Layouts.GelfLayout.IncludeEventProperties is true
+
+
+
+
+ Whether to include the contents of the T:NLog.ScopeContext properties-dictionary.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Option to render the empty object value {}
+
+
+
+
+ Option to suppress the extra spaces in the output json.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Option to include all properties from the log event (as JSON)
+
+
+
+
+ Indicates whether to include contents of the T:NLog.GlobalDiagnosticsContext dictionary.
+
+
+
+
+ Whether to include the contents of the T:NLog.ScopeContext dictionary.
+
+
+
+
+ Option to exclude null/empty properties from the log event (as JSON)
+
+
+
+
+ List of property names to exclude when P:NLog.Layouts.JsonLayout.IncludeAllProperties is true
+
+
+
+
+ Auto indent and create new lines
+
+
+
+
+ How far should the JSON serializer follow object references before backing off
+
+
+
+
+ Option to render the empty object value {}
+
+
+
+
+ Option to suppress the extra spaces in the output json.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Footer layout.
+
+
+
+
+ Header layout.
+
+
+
+
+ Body layout (can be repeated multiple times).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Option to include all properties from the log events
+
+
+
+
+ Whether to include log4j:NDC in output from T:NLog.ScopeContext nested context.
+
+
+
+
+ Whether to include log4j:NDC in output from T:NLog.ScopeContext nested context.
+
+
+
+
+ Whether to include the contents of the T:NLog.ScopeContext properties-dictionary.
+
+
+
+
+ Stack separator for log4j:NDC in output from T:NLog.ScopeContext nested context.
+
+
+
+
+ Stack separator for log4j:NDC in output from T:NLog.ScopeContext nested context.
+
+
+
+
+ Whether the log4j:throwable xml-element should be written as CDATA
+
+
+
+
+ Log4j:event log4japp-xml-element. By default it's the friendly name of the current AppDomain.
+
+
+
+
+ Log4j:event message-xml-element. Default: ${message}
+
+
+
+
+ Indicates whether to include call site (class and method name) in the information sent over the network.
+
+
+
+
+ Indicates whether to include source info (file name and line number) in the information sent over the network.
+
+
+
+
+ Log4j:event logger-xml-attribute. Default: ${logger}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Option to include all properties from the log event (as JSON)
+
+
+
+
+ Indicates whether to include contents of the T:NLog.GlobalDiagnosticsContext dictionary.
+
+
+
+
+ Whether to include the contents of the T:NLog.ScopeContext dictionary.
+
+
+
+
+ Option to exclude null/empty properties from the log event (as JSON)
+
+
+
+
+ List of property names to exclude when P:NLog.Layouts.JsonLayout.IncludeAllProperties is true
+
+
+
+
+ Auto indent and create new lines
+
+
+
+
+ How far should the JSON serializer follow object references before backing off
+
+
+
+
+ Option to render the empty object value {}
+
+
+
+
+ Option to suppress the extra spaces in the output json.
+
+
+
+
+ Whether to include "scopes"-section
+
+
+
+
+ Whether to include "Timestamp"-section
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Indicates whether to include contents of the T:NLog.GlobalDiagnosticsContext dictionary.
+
+
+
+
+ Auto indent and create new lines
+
+
+
+
+ How far should the JSON serializer follow object references before backing off
+
+
+
+
+ Option to render the empty object value {}
+
+
+
+
+ Option to suppress the extra spaces in the output json.
+
+
+
+
+ Option to exclude null/empty properties from the log event (as JSON)
+
+
+
+
+ List of property names to exclude when P:NLog.Layouts.SplunkLayout.IncludeEventProperties is true
+
+
+
+
+ Option to include all properties from the log events
+
+
+
+
+ Whether to include the contents of the T:NLog.ScopeContext properties-dictionary.
+
+
+
+
+ Splunk Message Host-attribute
+
+
+
+
+ Splunk Message Index-attribute, that controls which event data is to be indexed.
+
+
+
+
+ Splunk Message Source-attribute. Example the name of the application.
+
+
+
+
+ Splunk Message SourceType-attribute. SourceType can be used hint for choosing Splunk Indexer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Indicates whether LogEvent Properties should be included for StructuredData when P:NLog.Layouts.SyslogLayout.Rfc5424 = true
+
+
+
+
+ Indicates whether to use RFC 3164 for Syslog Format
+
+
+
+
+ Indicates whether to use RFC 5424 for Syslog Format
+
+
+
+
+ Prefix for StructuredData when P:NLog.Layouts.SyslogLayout.Rfc5424 = true
+
+
+
+
+ Name of the device / application / process sending the Syslog-message (Optional)
+
+
+
+
+ Device Facility
+
+
+
+
+ The FQDN or IPv4 address or IPv6 address or hostname of the sender machine (Optional)
+
+
+
+
+ Message Severity
+
+
+
+
+ Mesage Payload
+
+
+
+
+ The type of message that should be the same for events with the same semantics. Ex ${event-properties:EventId} (Optional)
+
+
+
+
+ Process Id or Process Name or Logger Name (Optional)
+
+
+
+
+ Indicates what DateTime format should be used when P:NLog.Layouts.SyslogLayout.Rfc5424 = true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Footer layout.
+
+
+
+
+ Header layout.
+
+
+
+
+ Body layout (can be repeated multiple times).
+
+
+
+
+ Newline to append after each directive header
+
+
+
+
+
+
+
+
+
+
+
+
+ Layout of the field.
+
+
+
+
+ Name of the field.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name of the root XML element
+
+
+
+
+ Value inside the root XML element
+
+
+
+
+ Whether to include the contents of the T:NLog.ScopeContext dictionary.
+
+
+
+
+ List of property names to exclude when P:NLog.Layouts.XmlElementBase.IncludeEventProperties is true
+
+
+
+
+ Auto indent and create new lines
+
+
+
+
+ How far should the XML serializer follow object references before backing off
+
+
+
+
+ XML element name to use for rendering IList-collections items
+
+
+
+
+ XML attribute name to use when rendering property-key When null (or empty) then key-attribute is not included
+
+
+
+
+ XML element name to use when rendering properties
+
+
+
+
+ XML attribute name to use when rendering property-value When null (or empty) then value-attribute is not included and value is formatted as XML-element-value.
+
+
+
+
+ Determines whether or not this attribute will be Xml encoded.
+
+
+
+
+ Whether empty XML-element should be included in the output.
+
+
+
+
+ Option to include all properties from the log event (as XML)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name of the attribute.
+
+
+
+
+ Layout used for rendering the attribute value.
+
+
+
+
+ Fallback value when result value is not available
+
+
+
+
+ Whether output should be encoded with Xml-string escaping, or be treated as valid xml-attribute-value
+
+
+
+
+ Whether empty attribute value should be included in the output.
+
+
+
+
+ Result value type, for conversion of layout rendering output
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name of the element
+
+
+
+
+ Whether to include the contents of the T:NLog.ScopeContext dictionary.
+
+
+
+
+ Layout used for rendering the XML-element InnerText.
+
+
+
+
+ Value inside the element
+
+
+
+
+ Whether output should be encoded with XML-string escaping, or be treated as valid xml-element-value
+
+
+
+
+ List of property names to exclude when P:NLog.Layouts.XmlElementBase.IncludeEventProperties is true
+
+
+
+
+ Auto indent and create new lines
+
+
+
+
+ How far should the XML serializer follow object references before backing off
+
+
+
+
+ XML element name to use for rendering IList-collections items
+
+
+
+
+ XML attribute name to use when rendering property-key When null (or empty) then key-attribute is not included
+
+
+
+
+ XML element name to use when rendering properties
+
+
+
+
+ XML attribute name to use when rendering property-value When null (or empty) then value-attribute is not included and value is formatted as XML-element-value.
+
+
+
+
+ Whether output should be wrapped using CDATA section instead of XML-string escaping
+
+
+
+
+ Whether empty XML-element should be included in the output.
+
+
+
+
+ Option to include all properties from the log event (as XML)
+
+
+
+
+
+
+
+
+
+
+
+
+ Action to be taken when filter matches.
+
+
+
+
+ Condition expression.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Action to be taken when filter matches.
+
+
+
+
+ Indicates whether to ignore case when comparing strings.
+
+
+
+
+ Layout to be used to filter log messages.
+
+
+
+
+ Substring to be matched.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Action to be taken when filter matches.
+
+
+
+
+ String to compare the layout to.
+
+
+
+
+ Indicates whether to ignore case when comparing strings.
+
+
+
+
+ Layout to be used to filter log messages.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Action to be taken when filter matches.
+
+
+
+
+ Indicates whether to ignore case when comparing strings.
+
+
+
+
+ Layout to be used to filter log messages.
+
+
+
+
+ Substring to be matched.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Action to be taken when filter matches.
+
+
+
+
+ String to compare the layout to.
+
+
+
+
+ Indicates whether to ignore case when comparing strings.
+
+
+
+
+ Layout to be used to filter log messages.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Action to be taken when filter matches.
+
+
+
+
+ Append FilterCount to the P:NLog.LogEventInfo.Message when an event is no longer filtered
+
+
+
+
+ Insert FilterCount value into P:NLog.LogEventInfo.Properties when an event is no longer filtered
+
+
+
+
+ Applies the configured action to the initial logevent that starts the timeout period. Used to configure that it should ignore all events until timeout.
+
+
+
+
+ Layout to be used to filter log messages.
+
+
+
+
+ Max length of filter values, will truncate if above limit
+
+
+
+
+ How long before a filter expires, and logging is accepted again
+
+
+
+
+ Default number of unique filter values to expect, will automatically increase if needed
+
+
+
+
+ Max number of unique filter values to expect simultaneously
+
+
+
+
+ Default buffer size for the internal buffers
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WebUI/Properties/PublishProfiles/FolderProfile.pubxml.user b/WebUI/Properties/PublishProfiles/FolderProfile.pubxml.user
index e3a2efd..df08ed3 100644
--- a/WebUI/Properties/PublishProfiles/FolderProfile.pubxml.user
+++ b/WebUI/Properties/PublishProfiles/FolderProfile.pubxml.user
@@ -5,7 +5,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
<_PublishTargetUrl>D:\fb
- True|2025-06-21T09:52:05.3312975Z||;True|2025-06-21T16:43:56.1227037+08:00||;True|2023-09-22T14:50:21.6808369+08:00||;True|2023-09-22T14:49:24.8627239+08:00||;True|2023-09-22T14:34:33.4006499+08:00||;True|2023-09-22T12:00:40.3343199+08:00||;True|2023-09-22T11:41:16.0270994+08:00||;True|2023-09-21T16:17:57.6106908+08:00||;True|2022-11-09T13:38:52.2600692+08:00||;True|2022-11-04T18:08:15.3464350+08:00||;True|2022-09-02T11:52:51.6838354+08:00||;True|2022-08-26T15:14:03.1654649+08:00||;True|2022-08-25T15:27:04.1982767+08:00||;True|2022-08-24T17:50:37.3706175+08:00||;True|2022-08-24T17:16:24.7353563+08:00||;True|2022-08-22T14:12:08.9426677+08:00||;True|2022-08-19T10:29:29.4848915+08:00||;True|2022-08-19T10:24:37.3114106+08:00||;True|2022-08-19T09:55:19.1414504+08:00||;True|2022-08-19T09:40:59.9958103+08:00||;True|2022-08-19T09:33:37.6904208+08:00||;True|2022-08-19T09:28:36.3093517+08:00||;True|2022-08-19T09:22:06.8115880+08:00||;True|2022-08-19T09:13:37.9585905+08:00||;True|2022-08-17T15:10:05.3411660+08:00||;False|2022-08-17T15:08:06.4809616+08:00||;True|2022-06-01T19:33:05.4481344+08:00||;True|2022-05-25T14:24:10.1817614+08:00||;True|2022-05-25T09:23:06.2835677+08:00||;True|2022-05-25T09:02:15.3730215+08:00||;True|2022-05-24T21:19:00.5074933+08:00||;True|2022-05-13T17:54:16.9766250+08:00||;True|2022-05-12T17:59:35.6658572+08:00||;True|2022-05-12T17:45:56.8037279+08:00||;True|2022-05-11T18:02:44.6830705+08:00||;True|2022-05-11T15:11:44.2123306+08:00||;True|2022-05-10T10:14:03.1340627+08:00||;True|2022-05-09T18:11:38.7936836+08:00||;False|2022-05-09T18:09:23.9786371+08:00||;False|2022-05-09T18:09:11.8760404+08:00||;False|2022-05-09T18:07:17.4893920+08:00||;False|2022-05-09T18:06:24.0063875+08:00||;False|2022-05-09T18:05:19.0501822+08:00||;True|2022-05-09T10:32:23.0075871+08:00||;True|2022-05-06T17:57:46.6102126+08:00||;True|2022-05-05T19:26:02.1665879+08:00||;True|2022-05-05T18:35:49.6113434+08:00||;True|2022-05-05T18:23:09.7528455+08:00||;True|2022-05-03T18:16:55.2075231+08:00||;True|2022-05-03T17:38:58.8338071+08:00||;True|2022-04-26T13:55:48.6376957+08:00||;True|2022-04-26T09:08:43.8393049+08:00||;True|2022-04-23T10:24:41.7805502+08:00||;True|2022-04-23T09:59:02.7983739+08:00||;True|2022-04-23T09:46:47.0183590+08:00||;True|2022-04-23T09:21:57.0873811+08:00||;True|2022-04-21T20:01:57.5291853+08:00||;True|2022-04-21T19:17:57.1270857+08:00||;True|2022-04-21T19:15:38.6532410+08:00||;True|2022-04-21T19:13:59.1467307+08:00||;True|2022-04-21T19:08:19.2196334+08:00||;True|2022-04-21T18:21:58.1340503+08:00||;True|2022-04-21T18:01:33.3247434+08:00||;True|2022-04-21T17:52:25.1456343+08:00||;True|2022-04-21T10:05:58.9005370+08:00||;True|2022-04-20T20:00:05.8521460+08:00||;True|2022-04-11T16:08:04.2469358+08:00||;True|2022-04-07T15:22:53.5415688+08:00||;True|2022-04-06T09:41:40.8698606+08:00||;True|2022-04-02T10:36:16.9912313+08:00||;True|2022-03-29T16:13:23.9031232+08:00||;True|2022-03-29T16:08:28.6250221+08:00||;True|2022-03-29T14:58:43.5548350+08:00||;True|2022-03-29T14:46:07.0032400+08:00||;True|2022-03-29T10:45:41.4892896+08:00||;True|2022-03-28T18:04:53.4880071+08:00||;True|2022-03-16T17:45:58.4167087+08:00||;
+ True|2026-01-28T08:21:24.3919331Z||;True|2026-01-28T16:17:34.0814293+08:00||;True|2026-01-28T16:07:34.3703823+08:00||;True|2025-06-21T17:52:05.3312975+08:00||;True|2025-06-21T16:43:56.1227037+08:00||;True|2023-09-22T14:50:21.6808369+08:00||;True|2023-09-22T14:49:24.8627239+08:00||;True|2023-09-22T14:34:33.4006499+08:00||;True|2023-09-22T12:00:40.3343199+08:00||;True|2023-09-22T11:41:16.0270994+08:00||;True|2023-09-21T16:17:57.6106908+08:00||;True|2022-11-09T13:38:52.2600692+08:00||;True|2022-11-04T18:08:15.3464350+08:00||;True|2022-09-02T11:52:51.6838354+08:00||;True|2022-08-26T15:14:03.1654649+08:00||;True|2022-08-25T15:27:04.1982767+08:00||;True|2022-08-24T17:50:37.3706175+08:00||;True|2022-08-24T17:16:24.7353563+08:00||;True|2022-08-22T14:12:08.9426677+08:00||;True|2022-08-19T10:29:29.4848915+08:00||;True|2022-08-19T10:24:37.3114106+08:00||;True|2022-08-19T09:55:19.1414504+08:00||;True|2022-08-19T09:40:59.9958103+08:00||;True|2022-08-19T09:33:37.6904208+08:00||;True|2022-08-19T09:28:36.3093517+08:00||;True|2022-08-19T09:22:06.8115880+08:00||;True|2022-08-19T09:13:37.9585905+08:00||;True|2022-08-17T15:10:05.3411660+08:00||;False|2022-08-17T15:08:06.4809616+08:00||;True|2022-06-01T19:33:05.4481344+08:00||;True|2022-05-25T14:24:10.1817614+08:00||;True|2022-05-25T09:23:06.2835677+08:00||;True|2022-05-25T09:02:15.3730215+08:00||;True|2022-05-24T21:19:00.5074933+08:00||;True|2022-05-13T17:54:16.9766250+08:00||;True|2022-05-12T17:59:35.6658572+08:00||;True|2022-05-12T17:45:56.8037279+08:00||;True|2022-05-11T18:02:44.6830705+08:00||;True|2022-05-11T15:11:44.2123306+08:00||;True|2022-05-10T10:14:03.1340627+08:00||;True|2022-05-09T18:11:38.7936836+08:00||;False|2022-05-09T18:09:23.9786371+08:00||;False|2022-05-09T18:09:11.8760404+08:00||;False|2022-05-09T18:07:17.4893920+08:00||;False|2022-05-09T18:06:24.0063875+08:00||;False|2022-05-09T18:05:19.0501822+08:00||;True|2022-05-09T10:32:23.0075871+08:00||;True|2022-05-06T17:57:46.6102126+08:00||;True|2022-05-05T19:26:02.1665879+08:00||;True|2022-05-05T18:35:49.6113434+08:00||;True|2022-05-05T18:23:09.7528455+08:00||;True|2022-05-03T18:16:55.2075231+08:00||;True|2022-05-03T17:38:58.8338071+08:00||;True|2022-04-26T13:55:48.6376957+08:00||;True|2022-04-26T09:08:43.8393049+08:00||;True|2022-04-23T10:24:41.7805502+08:00||;True|2022-04-23T09:59:02.7983739+08:00||;True|2022-04-23T09:46:47.0183590+08:00||;True|2022-04-23T09:21:57.0873811+08:00||;True|2022-04-21T20:01:57.5291853+08:00||;True|2022-04-21T19:17:57.1270857+08:00||;True|2022-04-21T19:15:38.6532410+08:00||;True|2022-04-21T19:13:59.1467307+08:00||;True|2022-04-21T19:08:19.2196334+08:00||;True|2022-04-21T18:21:58.1340503+08:00||;True|2022-04-21T18:01:33.3247434+08:00||;True|2022-04-21T17:52:25.1456343+08:00||;True|2022-04-21T10:05:58.9005370+08:00||;True|2022-04-20T20:00:05.8521460+08:00||;True|2022-04-11T16:08:04.2469358+08:00||;True|2022-04-07T15:22:53.5415688+08:00||;True|2022-04-06T09:41:40.8698606+08:00||;True|2022-04-02T10:36:16.9912313+08:00||;True|2022-03-29T16:13:23.9031232+08:00||;True|2022-03-29T16:08:28.6250221+08:00||;True|2022-03-29T14:58:43.5548350+08:00||;True|2022-03-29T14:46:07.0032400+08:00||;True|2022-03-29T10:45:41.4892896+08:00||;True|2022-03-28T18:04:53.4880071+08:00||;True|2022-03-16T17:45:58.4167087+08:00||;
\ No newline at end of file
diff --git a/WebUI/WebUI.csproj b/WebUI/WebUI.csproj
index 40ff2a8..ddac0cc 100644
--- a/WebUI/WebUI.csproj
+++ b/WebUI/WebUI.csproj
@@ -43,6 +43,8 @@
+
+
diff --git a/WebUI/WebUI.csproj.user b/WebUI/WebUI.csproj.user
index 1067b32..6afac53 100644
--- a/WebUI/WebUI.csproj.user
+++ b/WebUI/WebUI.csproj.user
@@ -4,7 +4,7 @@
RazorViewEmptyScaffolder
root/Common/MVC/View
WebUI
- E:\Project\HotelServices\WebUI\Properties\PublishProfiles\FolderProfile.pubxml
+ E:\tian\chongxin\NewGit\Web_HotelServices_Prod\WebUI\Properties\PublishProfiles\FolderProfile.pubxml
MvcControllerEmptyScaffolder
root/Common/MVC/Controller
650
diff --git a/WebUI/nlog.config b/WebUI/nlog.config
new file mode 100644
index 0000000..3a1832e
--- /dev/null
+++ b/WebUI/nlog.config
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/项目分析报告.md b/项目分析报告.md
new file mode 100644
index 0000000..45eb592
--- /dev/null
+++ b/项目分析报告.md
@@ -0,0 +1,335 @@
+# 酒店服务管理系统项目分析报告
+
+## 1. 项目概览
+
+### 1.1 项目简介
+本项目是一个基于 .NET 5.0 开发的酒店服务管理系统,主要用于酒店客房控制单元(RCU)的集中管理、监控和配置。系统提供了完整的酒店设备管理、数据监控、固件升级等功能,支持多酒店集团的统一管理。
+
+### 1.2 主要功能
+- RCU设备管理和状态监控
+- 酒店和房间信息管理
+- 固件和配置文件下发
+- 实时数据统计和图表分析
+- UDP通信日志管理
+- 系统状态监控和服务管理
+
+### 1.3 技术栈
+| 类别 | 技术/框架 | 版本 |
+|------|----------|------|
+| 后端 | .NET Core | 5.0 |
+| 前端 | ASP.NET Core MVC | 5.0 |
+| 前端 | jQuery, Bootstrap | - |
+| 前端 | AdminLTE | - |
+| 数据库 | SQL Server | - |
+| 缓存 | Redis | - |
+| 日志 | log4net | - |
+| 日志 | Aliyun Api LogService | - |
+| 任务调度 | Quartz | 3.4.0 |
+| 认证 | JWT | 5.0.15 |
+
+## 2. 项目结构
+
+### 2.1 目录结构
+```
+Web_HotelServices_Prod/
+├── Aliyun.Api.LogService/ # 阿里云日志服务SDK
+├── COMMON/ # 通用工具类库
+├── DB_Server/ # 数据库操作类库
+├── Models/ # 数据模型
+├── SERVER/ # 核心服务逻辑
+├── ServerHelp/ # 服务辅助工具
+├── TcpServer/ # TCP服务器
+├── WebUI/ # Web前端和API
+├── .gitignore
+├── HotelServices.sln
+├── README.md
+└── 项目分析报告.md
+```
+
+### 2.2 核心模块说明
+
+#### 2.2.1 SERVER模块
+- **RCUServer.cs**:RCU设备管理核心逻辑,负责设备状态查询和管理
+- **Send_Cmd.cs**:命令下发模块,用于向RCU设备发送控制命令
+- **SYNC_DATA.cs**:数据同步模块
+- **CacheData.cs**:缓存数据管理
+- **ModelFile.cs**:模型文件管理
+
+#### 2.2.2 WebUI模块
+- **Controllers/**:API控制器,处理前端请求
+- **Views/**:MVC视图文件
+- **wwwroot/**:静态资源文件
+- **Startup.cs**:应用启动配置
+
+#### 2.2.3 Models模块
+- **Models/**:数据实体模型
+- **Data/**:数据库初始化
+
+#### 2.2.4 COMMON模块
+- **XC_Redis.cs**:Redis缓存操作
+- **LogHelp.cs**:日志帮助类
+- **ASLS.cs**:阿里云日志服务操作
+
+## 3. 技术架构
+
+### 3.1 系统架构
+
+```mermaid
+flowchart TD
+ subgraph 前端层
+ A[Web浏览器] -->|HTTP请求| B[ASP.NET Core MVC]
+ B -->|返回视图| A
+ end
+
+ subgraph 应用层
+ B -->|调用| C[API控制器]
+ C -->|业务逻辑| D[核心服务模块]
+ D -->|数据操作| E[数据访问层]
+ end
+
+ subgraph 数据层
+ E -->|读写| F[SQL Server]
+ E -->|缓存| G[Redis]
+ D -->|日志| H[阿里云日志服务]
+ end
+
+ subgraph 服务层
+ I[TCP服务器] -->|数据| D
+ J[定时任务] -->|触发| D
+ end
+```
+
+### 3.2 核心流程图
+
+#### RCU设备状态查询流程
+
+```mermaid
+sequenceDiagram
+ participant Client as 前端
+ participant API as ApiController
+ participant RcuServer as RcuServer
+ participant DB as 数据库
+ participant Redis as Redis缓存
+
+ Client->>API: 请求RCU设备列表
+ API->>RcuServer: 调用SetRucServer方法
+ RcuServer->>DB: 查询在线RCU设备
+ RcuServer->>DB: 关联查询房间和酒店信息
+ RcuServer->>Redis: 获取缓存数据
+ RcuServer-->>API: 返回设备列表
+ API-->>Client: 响应JSON数据
+```
+
+#### 固件下发流程
+
+```mermaid
+sequenceDiagram
+ participant Client as 前端
+ participant API as ApiController
+ participant SendCmd as Send_Cmd
+ participant Redis as Redis缓存
+ participant RCU as RCU设备
+
+ Client->>API: 发送固件升级请求
+ API->>Redis: 清除旧的缓存状态
+ API->>SendCmd: 调用Send_File方法
+ SendCmd->>RCU: 下发固件文件
+ SendCmd->>Redis: 更新进度状态
+ Client->>API: 查询升级进度
+ API->>Redis: 获取进度数据
+ API-->>Client: 返回进度信息
+```
+
+## 4. 核心功能模块
+
+### 4.1 RCU设备管理
+- **设备状态监控**:实时监控RCU设备的在线状态
+- **设备信息管理**:管理RCU设备的基本信息、配置和固件版本
+- **设备分组**:支持按酒店、房间类型等维度分组管理
+
+### 4.2 酒店和房间管理
+- **酒店集团管理**:支持多酒店集团的层级管理
+- **房间信息管理**:管理房间基本信息、类型和状态
+- **房间与RCU关联**:建立房间与RCU设备的对应关系
+
+### 4.3 固件和配置管理
+- **固件文件管理**:上传、删除和管理固件文件
+- **配置文件管理**:管理设备配置文件
+- **远程升级**:支持远程下发固件和配置到RCU设备
+- **升级进度监控**:实时监控升级进度
+
+### 4.4 数据统计和分析
+- **通信数据统计**:统计UDP通信包数量和字节流量
+- **设备状态分析**:分析设备在线率和运行状态
+- **图表可视化**:通过ECharts展示各类统计数据
+- **历史数据分析**:分析历史数据趋势
+
+### 4.5 系统监控和管理
+- **服务状态监控**:监控系统各服务的运行状态
+- **日志管理**:收集和管理系统日志
+- **定时任务**:通过Quartz实现定时任务调度
+- **系统配置**:管理系统基本配置
+
+## 5. API设计
+
+### 5.1 主要API端点
+
+#### 5.1.1 设备管理API
+- **GetRCU**:获取RCU设备列表,支持分页和筛选
+- **SendCmd**:下发固件或配置到RCU设备
+- **Send_Schedule**:查询固件下发进度
+
+#### 5.1.2 酒店管理API
+- **HOTELINFO**:获取酒店信息列表
+- **ROOMINFO**:获取房间信息列表
+- **Sel**:切换当前管理的酒店
+
+#### 5.1.3 文件管理API
+- **SelModelFile**:获取模型文件列表
+- **AddModelFile**:上传模型文件
+- **DelModelFile**:删除模型文件
+
+#### 5.1.4 数据统计API
+- **GetCHARTS**:获取通信数据统计图表
+- **GetErrorSucess**:获取错误和成功统计
+- **GetProt**:获取端口数据使用情况
+- **GetPROCESSINGTIME**:获取处理耗时统计
+
+#### 5.1.5 系统管理API
+- **Token**:刷新令牌并返回服务状态
+- **Changerserver**:更改服务状态
+
+### 5.2 API设计特点
+- **基于MVC控制器**:使用ASP.NET Core MVC控制器处理请求
+- **REST风格**:采用RESTful API设计理念
+- **JSON响应**:统一返回JSON格式数据
+- **错误处理**:完善的异常捕获和日志记录
+- **Redis缓存**:使用Redis缓存提升性能
+
+## 6. 技术亮点
+
+### 6.1 完整的RCU设备管理体系
+- 建立了完整的RCU设备生命周期管理
+- 支持设备状态实时监控和历史数据分析
+- 提供了丰富的设备管理和配置功能
+
+### 6.2 实时数据监控和统计分析
+- 实时监控RCU设备状态和通信数据
+- 提供多维度的数据统计和图表分析
+- 支持自定义时间范围的数据查询
+
+### 6.3 多酒店集团管理
+- 支持多酒店集团的层级管理
+- 实现了酒店和房间的树形结构管理
+- 提供了灵活的权限控制机制
+
+### 6.4 定时任务调度系统
+- 使用Quartz实现定时任务调度
+- 支持多种任务类型和调度策略
+- 实现了系统状态检测和数据同步
+
+### 6.5 完善的日志管理
+- 集成了log4net和阿里云日志服务
+- 实现了多级别、多目标的日志记录
+- 提供了日志查询和分析功能
+
+## 7. 优化空间
+
+### 7.1 代码结构优化
+- **模块化重构**:进一步优化代码结构,提高模块独立性
+- **代码规范**:统一代码风格和命名规范
+- **注释完善**:增加代码注释,提高可维护性
+
+### 7.2 性能优化
+- **数据库优化**:优化数据库查询,添加适当索引
+- **缓存策略**:优化Redis缓存策略,减少数据库访问
+- **并发处理**:优化并发处理逻辑,提高系统吞吐量
+
+### 7.3 安全性增强
+- **身份认证**:加强身份认证和授权机制
+- **数据加密**:对敏感数据进行加密存储
+- **输入验证**:加强输入验证,防止注入攻击
+- **安全审计**:增加安全审计日志
+
+### 7.4 前端技术栈更新
+- **前端框架**:考虑使用现代前端框架如Vue.js或React
+- **响应式设计**:优化移动端适配
+- **性能优化**:减少前端加载时间,优化用户体验
+
+### 7.5 文档完善
+- **技术文档**:完善系统架构和技术文档
+- **API文档**:生成API接口文档
+- **使用手册**:编写用户使用手册
+
+### 7.6 部署优化
+- **容器化**:考虑使用Docker容器化部署
+- **CI/CD**:建立持续集成和持续部署流程
+- **监控告警**:增加系统监控和告警机制
+
+## 8. 总结
+
+### 8.1 项目价值
+- **提升管理效率**:实现了RCU设备的集中管理,提高了管理效率
+- **降低运营成本**:通过远程管理和监控,减少了现场维护成本
+- **提高服务质量**:实时监控设备状态,及时发现和解决问题
+- **数据驱动决策**:通过数据分析,为管理决策提供依据
+
+### 8.2 技术价值
+- **完整的.NET生态**:展示了.NET Core在企业级应用中的完整实践
+- **模块化设计**:体现了良好的模块化设计思想
+- **多技术整合**:整合了多种技术栈,形成完整的解决方案
+- **可扩展性**:系统设计具有良好的可扩展性和可维护性
+
+### 8.3 未来展望
+- **技术升级**:持续跟进.NET技术发展,进行技术栈升级
+- **功能扩展**:根据业务需求,不断扩展系统功能
+- **智能化**:引入人工智能技术,实现设备故障预测和智能运维
+- **云原生**:向云原生架构演进,提高系统弹性和可靠性
+
+## 9. 附录
+
+### 9.1 关键文件列表
+
+| 文件路径 | 功能描述 |
+|---------|---------|
+| SERVER/RcuServer.cs | RCU设备管理核心逻辑 |
+| SERVER/Send_Cmd.cs | 命令下发模块 |
+| WebUI/Controllers/ApiController.cs | API控制器 |
+| WebUI/Startup.cs | 应用启动配置 |
+| COMMON/XC_Redis.cs | Redis缓存操作 |
+| Models/Models/TBL_RCU_BASIC_INFO.cs | RCU设备基础信息模型 |
+| Models/Models/TBL_HOTEL_BASIC_INFO.cs | 酒店基础信息模型 |
+
+### 9.2 核心API列表
+
+| API端点 | HTTP方法 | 功能描述 |
+|---------|---------|---------|
+| /Api/GetRCU | POST | 获取RCU设备列表 |
+| /Api/SendCmd | POST | 下发固件或配置 |
+| /Api/Send_Schedule | POST | 查询下发进度 |
+| /Api/HOTELINFO | POST | 获取酒店信息 |
+| /Api/ROOMINFO | POST | 获取房间信息 |
+| /Api/SelModelFile | POST | 获取模型文件列表 |
+| /Api/AddModelFile | POST | 上传模型文件 |
+| /Api/DelModelFile | POST | 删除模型文件 |
+| /Api/GetCHARTS | POST | 获取通信数据统计 |
+| /Api/Token | POST | 刷新令牌和服务状态 |
+
+### 9.3 技术依赖
+
+| 依赖项 | 版本 | 用途 |
+|-------|------|------|
+| Microsoft.AspNetCore.Authentication.JwtBearer | 5.0.15 | JWT认证 |
+| Microsoft.EntityFrameworkCore | 5.0.15 | 数据库访问 |
+| Microsoft.EntityFrameworkCore.SqlServer | 5.0.15 | SQL Server驱动 |
+| Quartz | 3.4.0 | 定时任务调度 |
+| UtilsSharp | 2.5.0 | 工具类库 |
+| log4net | - | 日志记录 |
+| Redis | - | 缓存管理 |
+| Aliyun.Api.LogService | - | 阿里云日志服务 |
+
+---
+
+**报告生成时间**:2026-01-21
+**项目版本**:基于当前代码库分析
+**分析工具**:手动代码分析 + 项目结构扫描
\ No newline at end of file