c#
VB
c++
[DispIdAttribute (18)]
公共字符串UserAgent {得到;}
只读的财产UserAgent作为字符串
财产字符串^ UserAgent {
字符串^ get ();
}
一个字符串,表示客户端使用的浏览器类型。
如果方法失败,一个错误。有关更多信息,请参考错误代码。
使用Leadtools;
使用Leadtools.MediaStreaming;
枚举W3CLOG
{
= 0 x00000001日期,
时间= 0 x00000002,
c_ip = 0 x00000004,
cs_username = 0 x00000008,
s_sitename = 0 x00000010,
s_computername = 0 x00000020,
s_ip = 0 x00000040,
s_port = 0 x00000080,
cs_method = 0 x00000100,
cs_uri_stem = 0 x00000200,
cs_uri_query = 0 x00000400,
sc_status = 0 x00000800,
sc_win32_status = 0 x00001000,
sc_bytes = 0 x00002000,
cs_bytes = 0 x00004000,
time_taken = 0 x00008000,
cs_version = 0 x00010000,
cs_host = 0 x00020000,
cs_user_agent = 0 x00040000,
cs_cookie = 0 x00080000,
cs_referer = 0 x00100000,
sc_substatus = 0 x00200000,
};
公共类CW3CLogHandler: ILtmsLogHandler
{
boolm_enable;
intm_fields;
boolm_localtime;
DateTime m_dtfile;
字符串m_software;
字符串m_folder;
字符串m_prefix;
StreamWriter m_sw;
公共CW3CLogHandler (字符串前缀,字符串软件,bool启用,字符串文件夹,int字段,bool本地时间)
{
m_prefix =前缀;
m_software =软件;
m_enable =启用;
m_folder =文件夹;
m_fields =字段;
m_localtime =作用;
}
~ CW3CLogHandler ()
{
}
无效WriteString (字符串str)
{
m_sw.Write (str);
}
DateTime取得时间(双dTime)
{
DateTime dt = DateTime.FromOADate (dTime);
如果(m_localtime)
返回dt.ToLocalTime ();
返回dt;
}
字符串GetLogPath (双时间戳)
{
DateTime dt =取得时间(时间戳);
字符串strFullPath;
试一试
{
PathResolver解析器=新PathResolver ();
strFullPath = resolver.Resolve (m_folder);
}
抓
{
返回”“;
}
strFullPath + =“\ \”;
strFullPath + = m_prefix;
如果(m_localtime !)
{
strFullPath + = dt.ToString (“y-MM-dd-HH-mm-ss”).Replace (“-”,”“)+“UTC.log”;
}
其他的
{
strFullPath + = dt.ToString (“y-MM-dd-HH-mm-ss”).Replace (“-”,”“)+. log”;
}
返回strFullPath;
}
公共无效LoadConfig服务器(服务器)
{
bool使= m_enable;
bool本地时间= m_localtime;
字符串文件夹= m_folder;
int字段= m_fields;
bool肮脏的=假;
ApplicationProperties AppProps = server.GetApplicationProperties ();
试一试
{
使= AppProps.GetBoolean (“LogEnable”);
}
抓
{
AppProps.AddBoolean (“LogEnable”使);
肮脏的=真正的;
}
试一试
{
本地时间= AppProps.GetBoolean (“LogLocalTime”);
}
抓
{
AppProps.AddBoolean (“LogLocalTime”、作用);
肮脏的=真正的;
}
试一试
{
文件夹= AppProps.GetString (“LogFolder”);
}
抓
{
AppProps.AddString (“LogFolder”、文件夹);
肮脏的=真正的;
}
试一试
{
字段= AppProps.GetInteger (“LogFields”);
}
抓
{
AppProps.AddInteger (“LogFields”、字段);
肮脏的=真正的;
}
如果(脏的)
server.SetApplicationProperties (AppProps);
/ /是否有变化我们需要关闭当前文件
如果(!启用& & (字符串.Compare (m_folder文件夹,真正的)! = 0)| |字段! = m_fields | | m_localtime ! =作用)
{
如果(m_sw ! =零)
m_sw.Close ();
}
m_folder =文件夹;
m_localtime =作用;
m_enable =启用;
m_fields =字段;
}
boolCreateLog (双时间戳)
{
如果(m_sw ! =零)
m_sw.Close ();
如果(m_enable !)
返回假;
试一试
{
m_sw = File.CreateText (GetLogPath(时间戳));
}
抓
{
返回假;
}
m_dtfile =取得时间(时间戳);
字符串年代;
s =“#软件:”+ m_software +“\ r \ n”;
WriteString(年代);
WriteString (“#版本:1.0 \ r \ n”);
DateTime dt =取得时间(时间戳);
s =" #日期:"+ dt.ToString (“yyyy-MM-dd HH: mm: ss”)+“\ r \ n”;
WriteString(年代);
s =“#字段:“;
如果((m_fields & (int)W3CLOG.date) = = (intW3CLOG.date)
{
s + =“日期”;
}
如果((m_fields & (int)W3CLOG.time) = = (intW3CLOG.time)
{
s + =“时间”;
}
如果((m_fields & (int)W3CLOG.s_sitename) = = (intW3CLOG.s_sitename)
{
s + =“s-sitename”;
}
如果((m_fields & (int)W3CLOG.s_computername) = = (intW3CLOG.s_computername)
{
s + =“s-computername”;
}
如果((m_fields & (int)W3CLOG.s_ip) = = (intW3CLOG.s_ip)
{
s + =“s-ip”;
}
如果((m_fields & (int)W3CLOG.cs_method) = = (intW3CLOG.cs_method)
{
s + =“cs方法”;
}
如果((m_fields & (int)W3CLOG.cs_uri_stem) = = (intW3CLOG.cs_uri_stem)
{
s + =“cs-uri-stem”;
}
如果((m_fields & (int)W3CLOG.cs_uri_query) = = (intW3CLOG.cs_uri_query)
{
s + =“cs-uri-query”;
}
如果((m_fields & (int)W3CLOG.s_port) = = (intW3CLOG.s_port)
{
s + =“s-port”;
}
如果((m_fields & (int)W3CLOG.cs_username) = = (intW3CLOG.cs_username)
{
s + =“cs-username”;
}
如果((m_fields & (int)W3CLOG.c_ip) = = (intW3CLOG.c_ip)
{
s + =“c-ip”;
}
如果((m_fields & (int)W3CLOG.cs_version) = = (intW3CLOG.cs_version)
{
s + =“cs-version”;
}
如果((m_fields & (int)W3CLOG.cs_user_agent) = = (intW3CLOG.cs_user_agent)
{
s + =“cs(用户代理)”;
}
如果((m_fields & (int)W3CLOG.cs_cookie) = = (intW3CLOG.cs_cookie)
{
s + =“cs(饼干)”;
}
如果((m_fields & (int)W3CLOG.cs_referer) = = (intW3CLOG.cs_referer)
{
s + =“cs(推荐人)”;
}
如果((m_fields & (int)W3CLOG.cs_host) = = (intW3CLOG.cs_host)
{
s + =“cs-host”;
}
如果((m_fields & (int)W3CLOG.sc_status) = = (intW3CLOG.sc_status)
{
s + =“sc-status”;
}
如果((m_fields & (int)W3CLOG.sc_substatus) = = (intW3CLOG.sc_substatus)
{
s + =“sc-substatus”;
}
如果((m_fields & (int)W3CLOG.sc_win32_status) = = (intW3CLOG.sc_win32_status)
{
s + =“sc-win32-status”;
}
如果((m_fields & (int)W3CLOG.sc_bytes) = = (intW3CLOG.sc_bytes)
{
s + =“sc-bytes”;
}
如果((m_fields & (int)W3CLOG.cs_bytes) = = (intW3CLOG.cs_bytes)
{
s + =“cs-bytes”;
}
如果((m_fields & (int)W3CLOG.time_taken) = = (intW3CLOG.time_taken)
{
s + =“时间”;
}
s + =“\ r \ n”;
WriteString(年代);
m_sw.Flush ();
返回真正的;
}
字符串逃避(字符串s)
{
字符串t =”“;
foreach(字符c在s)
{
如果(!字符.IsControl (c) & & !字符.IsWhiteSpace (c))
t + = c;
其他的
t + =“+”;
}
返回t;
}
公共无效InitializeLog (双时间戳)
{
CreateLog(时间戳);
}
公共无效TerminateLog ()
{
如果(m_sw ! =零)
m_sw.Close ();
}
公共无效LogInformation (ILtmsLogInformation信息)
{
字符串s =”“;
如果(m_enable !)
返回;
/ /检查是否我们需要将一个新文件
{
DateTime dt =取得时间(info.TimeStamp);
如果(m_sw = =零| | dt。一天! = m_dtfile。天| | dt。月! = m_dtfile。月| | dt。! = m_dtfile.Year)
{
如果(! CreateLog (info.TimeStamp))
返回;
}
}
如果((m_fields & (int)W3CLOG.date) = = (intW3CLOG.date)
{
DateTime dt =取得时间(info.TimeStamp);
如果(s。长度> 0)
s + =”“;
s + = dt.ToString (“yyyy-MM-dd”);
}
如果((m_fields & (int)W3CLOG.time) = = (intW3CLOG.time)
{
DateTime dt =取得时间(info.TimeStamp);
如果(s。长度> 0)
s + =”“;
s + = dt.ToString (“HH: mm: ss”);
}
如果((m_fields & (int)W3CLOG.s_sitename) = = (intW3CLOG.s_sitename)
{
字符串str = info.SiteName;
如果(s。长度> 0)
s + =”“;
如果(str.Length = = 0)
s + =“-”;
其他的
s + =逃脱(str);
}
如果((m_fields & (int)W3CLOG.s_computername) = = (intW3CLOG.s_computername)
{
字符串str = info.ComputerName;
如果(s。长度> 0)
s + =”“;
如果(str.Length = = 0)
s + =“-”;
其他的
s + =逃脱(str);
}
如果((m_fields & (int)W3CLOG.s_ip) = = (intW3CLOG.s_ip)
{
字符串str = info.ServerIP;
如果(s。长度> 0)
s + =”“;
如果(str.Length = = 0)
s + =“-”;
其他的
s + =逃脱(str);
}
如果((m_fields & (int)W3CLOG.cs_method) = = (intW3CLOG.cs_method)
{
字符串str = info.Method;
如果(s。长度> 0)
s + =”“;
如果(str.Length = = 0)
s + =“-”;
其他的
s + =逃脱(str);
}
如果((m_fields & (int)W3CLOG.cs_uri_stem) = = (intW3CLOG.cs_uri_stem)
{
字符串str = info.URIStem;
如果(s。长度> 0)
s + =”“;
如果(str.Length = = 0)
s + =“-”;
其他的
s + =逃脱(str);
}
如果((m_fields & (int)W3CLOG.cs_uri_query) = = (intW3CLOG.cs_uri_query)
{
字符串str = info.URIQuery;
如果(s。长度> 0)
s + =”“;
如果(str.Length = = 0)
s + =“-”;
其他的
s + =逃脱(str);
}
如果((m_fields & (int)W3CLOG.s_port) = = (intW3CLOG.s_port)
{
intn = info.ServerPort;
如果(s。长度> 0)
s + =”“;
s + = n.ToString ();
}
如果((m_fields & (int)W3CLOG.cs_username) = = (intW3CLOG.cs_username)
{
字符串str = info.UserName;
如果(s。长度> 0)
s + =”“;
如果(str.Length = = 0)
s + =“-”;
其他的
s + =逃脱(str);
}
如果((m_fields & (int)W3CLOG.c_ip) = = (intW3CLOG.c_ip)
{
字符串str = info.ClientIP;
如果(s。长度> 0)
s + =”“;
如果(str.Length = = 0)
s + =“-”;
其他的
s + =逃脱(str);
}
如果((m_fields & (int)W3CLOG.cs_version) = = (intW3CLOG.cs_version)
{
字符串str = info.ProtocolVersion;
如果(s。长度> 0)
s + =”“;
如果(str.Length = = 0)
s + =“-”;
其他的
s + =逃脱(str);
}
如果((m_fields & (int)W3CLOG.cs_user_agent) = = (intW3CLOG.cs_user_agent)
{
字符串str = info.UserAgent;
如果(s。长度> 0)
s + =”“;
如果(str.Length = = 0)
s + =“-”;
其他的
s + =逃脱(str);
}
如果((m_fields & (int)W3CLOG.cs_cookie) = = (intW3CLOG.cs_cookie)
{
字符串str = info.Cookie;
如果(s。长度> 0)
s + =”“;
如果(str.Length = = 0)
s + =“-”;
其他的
s + =逃脱(str);
}
如果((m_fields & (int)W3CLOG.cs_referer) = = (intW3CLOG.cs_referer)
{
字符串str = info.Referrer;
如果(s。长度> 0)
s + =”“;
如果(str.Length = = 0)
s + =“-”;
其他的
s + =逃脱(str);
}
如果((m_fields & (int)W3CLOG.cs_host) = = (intW3CLOG.cs_host)
{
字符串str = info.Host;
如果(s。长度> 0)
s + =”“;
如果(str.Length = = 0)
s + =“-”;
其他的
s + =逃脱(str);
}
如果((m_fields & (int)W3CLOG.sc_status) = = (intW3CLOG.sc_status)
{
intn = info.Status;
如果(s。长度> 0)
s + =”“;
s + = n.ToString ();
}
如果((m_fields & (int)W3CLOG.sc_substatus) = = (intW3CLOG.sc_substatus)
{
intn = info.ProtocolSubStatus;
如果(s。长度> 0)
s + =”“;
s + = n.ToString ();
}
如果((m_fields & (int)W3CLOG.sc_win32_status) = = (intW3CLOG.sc_win32_status)
{
intn = info.Win32Status;
如果(s。长度> 0)
s + =”“;
s + = n.ToString ();
}
如果((m_fields & (int)W3CLOG.sc_bytes) = = (intW3CLOG.sc_bytes)
{
intn = info.BytesSent;
如果(s。长度> 0)
s + =”“;
如果(n < 0)
s + =“-”;
其他的
s + = n.ToString ();
}
如果((m_fields & (int)W3CLOG.cs_bytes) = = (intW3CLOG.cs_bytes)
{
intn = info.BytesReceived;
如果(s。长度> 0)
s + =”“;
如果(n < 0)
s + =“-”;
其他的
s + = n.ToString ();
}
如果((m_fields & (int)W3CLOG.time_taken) = = (intW3CLOG.time_taken)
{
intn = info.TimeTaken;
如果(s。长度> 0)
s + =”“;
如果(n < 0)
s + =“-”;
其他的
s + = n.ToString ();
}
s + =“\ r \ n”;
WriteString(年代);
m_sw.Flush ();
}
}
公共服务器_server =零;
公共bool_result =假;
公共无效W3CLogHandlerExample ()
{
试一试
{
国家enumState;
CW3CLogHandler _loghandler;
/ /创建一个服务器对象的实例
_server =新Leadtools.MediaStreaming.Server ();
/ /创建日志处理程序
_loghandler =新CW3CLogHandler (“ltmsServer_”,“LEADTOOLS流媒体服务器”,真正的,“% ltmsLogFolder %”0,假);
/ /设置日志处理程序
_server。ILogHandler = _loghandler;
{
/ /用于演示,比较我们设置的接口
ILtmsLogHandler ihandler =零;
ihandler = _server.ILogHandler;
如果(ihandler ! = (ILtmsLogHandler) _loghandler)
{
_result =假;
返回;
}
}
/ /加载配置文件位于配置文件夹下的可执行文件的文件夹
/ /或注释本节运行服务器的默认设置
_server.ImportConfigFile (“% ltmsConfigFolder % \ \ LeadtoolsMediaStreamingServer.xml”);
/ /启动服务器
_server.Start ();
/ /确认演示目的的运行状态
enumState = _server.State;
如果(enumState = = State.Started)
{
/ /显示一条消息,服务器正在运行,等待好
MessageBox.Show (“服务器已经开始。按OK停止。”,“LEADTOOLS流媒体的例子”,MessageBoxButtons。好的,MessageBoxIcon.Information);
}
/ /停止服务器
_server.Stop ();
/ /删除日志处理程序
_server。ILogHandler =零;
_result =真正的;
}
抓(异常)
{
_result =假;
}
}
进口Leadtools
进口Leadtools.MediaStreaming
私人枚举W3CLOG
(日期]= h1
时间= h2
c_ip = h4
cs_username = h8
s_sitename = h10
s_computername = 3
s_ip = &H40
s_port = &H80
cs_method = &H100
cs_uri_stem = &H200
cs_uri_query = &H400
sc_status = &H800
sc_win32_status = &H1000
sc_bytes = &H2000
cs_bytes = &H4000
time_taken = &H8000
cs_version = &H10000
cs_host = &H20000
cs_user_agent = &H40000
cs_cookie = &H80000
cs_referer = &H100000
sc_substatus = &H200000
结束枚举
公共类CW3CLogHandler:实现了ILtmsLogHandler
私人m_enable作为布尔
私人m_fields作为整数
私人m_localtime作为布尔
私人m_dtfile作为DateTime
私人m_software作为字符串
私人m_folder作为字符串
私人m_prefix作为字符串
私人m_sw作为StreamWriter
公共子新(按值传递前缀作为字符串,按值传递软件作为字符串,按值传递启用作为布尔,按值传递文件夹作为字符串,按值传递字段作为整数,按值传递本地时间作为布尔)
m_prefix =前缀
m_software =软件
m_enable =启用
m_folder =文件夹
m_fields =字段
m_localtime =作用
结束子
受保护的覆盖子Finalize ()
结束子
私人子WriteString (按值传递str作为字符串)
m_sw.Write (str)
结束子
私人函数取得时间(按值传递dTime作为双)作为DateTime
昏暗的dt作为DateTime = DateTime.FromOADate (dTime)
如果m_localtime然后
返回dt.ToLocalTime ()
结束如果
返回dt
结束函数
私人函数GetLogPath (按值传递时间戳作为双)作为字符串
昏暗的dt作为DateTime =取得时间(时间戳)
昏暗的strFullPath作为字符串
试一试
昏暗的解析器作为PathResolver =新PathResolver ()
strFullPath = resolver.Resolve (m_folder)
抓
返回”“
结束试一试
strFullPath & =“\”
strFullPath & = m_prefix
如果(不m_localtime)然后
strFullPath & = dt.ToString (“y-MM-dd-HH-mm-ss”).Replace (“-”,”“)&“UTC.log”
其他的
strFullPath & = dt.ToString (“y-MM-dd-HH-mm-ss”).Replace (“-”,”“)&. log”
结束如果
返回strFullPath
结束函数
公共子LoadConfig (按值传递服务器作为服务器)
昏暗的启用作为布尔= m_enable
昏暗的本地时间作为布尔= m_localtime
昏暗的文件夹作为字符串= m_folder
昏暗的字段作为整数= m_fields
昏暗的脏作为布尔=假
昏暗的AppProps作为ApplicationProperties = server.GetApplicationProperties ()
试一试
使= AppProps.GetBoolean (“LogEnable”)
抓
AppProps.AddBoolean (“LogEnable”启用)
肮脏的=真正的
结束试一试
试一试
本地时间= AppProps.GetBoolean (“LogLocalTime”)
抓
AppProps.AddBoolean (“LogLocalTime”、作用)
肮脏的=真正的
结束试一试
试一试
文件夹= AppProps.GetString (“LogFolder”)
抓
AppProps.AddString (“LogFolder”文件夹)
肮脏的=真正的
结束试一试
试一试
字段= AppProps.GetInteger (“LogFields”)
抓
AppProps.AddInteger (“LogFields”、字段)
肮脏的=真正的
结束试一试
如果脏然后
server.SetApplicationProperties (AppProps)
结束如果
如果任何改变了然后我们需要关闭当前文件
如果(不启用)需要说明(字符串.Compare (m_folder文件夹,真正的)< > 0)OrElse<字段> m_fieldsOrElsem_localtime < >本地时间然后
如果不m_sw是没有什么然后
m_sw.Close ()
结束如果
结束如果
m_folder =文件夹
m_localtime =作用
m_enable =启用
m_fields =字段
结束子
私人函数CreateLog (按值传递时间戳作为双)作为布尔
如果不m_sw是没有什么然后
m_sw.Close ()
结束如果
如果(不m_enable)然后
返回假
结束如果
试一试
m_sw = File.CreateText (GetLogPath(时间戳)
抓
返回假
结束试一试
m_dtfile =取得时间(时间戳)
昏暗的年代作为字符串
s =“#软件:”& m_software & Constants.vbCrLf
WriteString (s)
WriteString (“#版本:1.0”& Constants.vbCrLf)
昏暗的dt作为DateTime =取得时间(时间戳)
s =" #日期:"& dt.ToString (“yyyy-MM-dd HH: mm: ss”)& Constants.vbCrLf
WriteString (s)
s =“#字段:“
如果(m_fields和CInt(W3CLOG。日期))=CInt(W3CLOG。日期)然后
s & =“日期”
结束如果
如果(m_fields和CInt(W3CLOG.time)) =CInt(W3CLOG.time)然后
s & =“时间”
结束如果
如果(m_fields和CInt(W3CLOG.s_sitename)) =CInt(W3CLOG.s_sitename)然后
s & =“s-sitename”
结束如果
如果(m_fields和CInt(W3CLOG.s_computername)) =CInt(W3CLOG.s_computername)然后
s & =“s-computername”
结束如果
如果(m_fields和CInt(W3CLOG.s_ip)) =CInt(W3CLOG.s_ip)然后
s & =“s-ip”
结束如果
如果(m_fields和CInt(W3CLOG.cs_method)) =CInt(W3CLOG.cs_method)然后
s & =“cs方法”
结束如果
如果(m_fields和CInt(W3CLOG.cs_uri_stem)) =CInt(W3CLOG.cs_uri_stem)然后
s & =“cs-uri-stem”
结束如果
如果(m_fields和CInt(W3CLOG.cs_uri_query)) =CInt(W3CLOG.cs_uri_query)然后
s & =“cs-uri-query”
结束如果
如果(m_fields和CInt(W3CLOG.s_port)) =CInt(W3CLOG.s_port)然后
s & =“s-port”
结束如果
如果(m_fields和CInt(W3CLOG.cs_username)) =CInt(W3CLOG.cs_username)然后
s & =“cs-username”
结束如果
如果(m_fields和CInt(W3CLOG.c_ip)) =CInt(W3CLOG.c_ip)然后
s & =“c-ip”
结束如果
如果(m_fields和CInt(W3CLOG.cs_version)) =CInt(W3CLOG.cs_version)然后
s & =“cs-version”
结束如果
如果(m_fields和CInt(W3CLOG.cs_user_agent)) =CInt(W3CLOG.cs_user_agent)然后
s & =“cs(用户代理)”
结束如果
如果(m_fields和CInt(W3CLOG.cs_cookie)) =CInt(W3CLOG.cs_cookie)然后
s & =“cs(饼干)”
结束如果
如果(m_fields和CInt(W3CLOG.cs_referer)) =CInt(W3CLOG.cs_referer)然后
s & =“cs(推荐人)”
结束如果
如果(m_fields和CInt(W3CLOG.cs_host)) =CInt(W3CLOG.cs_host)然后
s & =“cs-host”
结束如果
如果(m_fields和CInt(W3CLOG.sc_status)) =CInt(W3CLOG.sc_status)然后
s & =“sc-status”
结束如果
如果(m_fields和CInt(W3CLOG.sc_substatus)) =CInt(W3CLOG.sc_substatus)然后
s & =“sc-substatus”
结束如果
如果(m_fields和CInt(W3CLOG.sc_win32_status)) =CInt(W3CLOG.sc_win32_status)然后
s & =“sc-win32-status”
结束如果
如果(m_fields和CInt(W3CLOG.sc_bytes)) =CInt(W3CLOG.sc_bytes)然后
s & =“sc-bytes”
结束如果
如果(m_fields和CInt(W3CLOG.cs_bytes)) =CInt(W3CLOG.cs_bytes)然后
s & =“cs-bytes”
结束如果
如果(m_fields和CInt(W3CLOG.time_taken)) =CInt(W3CLOG.time_taken)然后
s & =“时间”
结束如果
s & = Constants.vbCrLf
WriteString (s)
m_sw.Flush ()
返回真正的
结束函数
私人函数逃避(按值传递年代作为字符串)作为字符串
昏暗的t作为字符串=”“
为每一个c作为字符在年代
如果(不字符.IsControl (c))需要说明(不字符.IsWhiteSpace (c))然后
t & = c
其他的
t & =“+”
结束如果
下一个c
返回t
结束函数
公共子InitializeLog (按值传递时间戳作为双)实现了ILtmsLogHandler.InitializeLog
CreateLog(时间戳)
结束子
公共子TerminateLog ()实现了ILtmsLogHandler.TerminateLog
如果不m_sw是没有什么然后
m_sw.Close ()
结束如果
结束子
公共子LogInformation (按值传递信息作为ILtmsLogInformation)实现了ILtmsLogHandler.LogInformation
昏暗的年代作为字符串=”“
如果(不m_enable)然后
返回
结束如果
检查是否我们需要滚到一个新文件
昏暗的dt作为DateTime =取得时间(info.TimeStamp)
如果m_sw是没有什么OrElsedt。天< > m_dtfile.DayOrElsedt。月< > m_dtfile.MonthOrElsedt。年的< > m_dtfile.Year然后
如果(不CreateLog (info.TimeStamp))然后
返回
结束如果
结束如果
如果(m_fields和CInt(W3CLOG。日期))=CInt(W3CLOG。日期)然后
昏暗的dtDate作为DateTime =取得时间(info.TimeStamp)
如果年代。长度> 0然后
s & =”“
结束如果
& = dtDate.ToString (“yyyy-MM-dd”)
结束如果
如果(m_fields和CInt(W3CLOG.time)) =CInt(W3CLOG.time)然后
昏暗的dtTime作为DateTime =取得时间(info.TimeStamp)
如果年代。长度> 0然后
s & =”“
结束如果
& = dtTime.ToString (“HH: mm: ss”)
结束如果
如果(m_fields和CInt(W3CLOG.s_sitename)) =CInt(W3CLOG.s_sitename)然后
昏暗的str作为字符串= info.SiteName
如果年代。长度> 0然后
s & =”“
结束如果
如果str.Length = 0然后
s & =“-”
其他的
& =逃脱(str)
结束如果
结束如果
如果(m_fields和CInt(W3CLOG.s_computername)) =CInt(W3CLOG.s_computername)然后
昏暗的str作为字符串= info.ComputerName
如果年代。长度> 0然后
s & =”“
结束如果
如果str.Length = 0然后
s & =“-”
其他的
& =逃脱(str)
结束如果
结束如果
如果(m_fields和CInt(W3CLOG.s_ip)) =CInt(W3CLOG.s_ip)然后
昏暗的str作为字符串= info.ServerIP
如果年代。长度> 0然后
s & =”“
结束如果
如果str.Length = 0然后
s & =“-”
其他的
& =逃脱(str)
结束如果
结束如果
如果(m_fields和CInt(W3CLOG.cs_method)) =CInt(W3CLOG.cs_method)然后
昏暗的str作为字符串= info.Method
如果年代。长度> 0然后
s & =”“
结束如果
如果str.Length = 0然后
s & =“-”
其他的
& =逃脱(str)
结束如果
结束如果
如果(m_fields和CInt(W3CLOG.cs_uri_stem)) =CInt(W3CLOG.cs_uri_stem)然后
昏暗的str作为字符串= info.URIStem
如果年代。长度> 0然后
s & =”“
结束如果
如果str.Length = 0然后
s & =“-”
其他的
& =逃脱(str)
结束如果
结束如果
如果(m_fields和CInt(W3CLOG.cs_uri_query)) =CInt(W3CLOG.cs_uri_query)然后
昏暗的str作为字符串= info.URIQuery
如果年代。长度> 0然后
s & =”“
结束如果
如果str.Length = 0然后
s & =“-”
其他的
& =逃脱(str)
结束如果
结束如果
如果(m_fields和CInt(W3CLOG.s_port)) =CInt(W3CLOG.s_port)然后
昏暗的n作为整数= info.ServerPort
如果年代。长度> 0然后
s & =”“
结束如果
s & = n.ToString ()
结束如果
如果(m_fields和CInt(W3CLOG.cs_username)) =CInt(W3CLOG.cs_username)然后
昏暗的str作为字符串= info.UserName
如果年代。长度> 0然后
s & =”“
结束如果
如果str.Length = 0然后
s & =“-”
其他的
& =逃脱(str)
结束如果
结束如果
如果(m_fields和CInt(W3CLOG.c_ip)) =CInt(W3CLOG.c_ip)然后
昏暗的str作为字符串= info.ClientIP
如果年代。长度> 0然后
s & =”“
结束如果
如果str.Length = 0然后
s & =“-”
其他的
& =逃脱(str)
结束如果
结束如果
如果(m_fields和CInt(W3CLOG.cs_version)) =CInt(W3CLOG.cs_version)然后
昏暗的str作为字符串= info.ProtocolVersion
如果年代。长度> 0然后
s & =”“
结束如果
如果str.Length = 0然后
s & =“-”
其他的
& =逃脱(str)
结束如果
结束如果
如果(m_fields和CInt(W3CLOG.cs_user_agent)) =CInt(W3CLOG.cs_user_agent)然后
昏暗的str作为字符串= info.UserAgent
如果年代。长度> 0然后
s & =”“
结束如果
如果str.Length = 0然后
s & =“-”
其他的
& =逃脱(str)
结束如果
结束如果
如果(m_fields和CInt(W3CLOG.cs_cookie)) =CInt(W3CLOG.cs_cookie)然后
昏暗的str作为字符串= info.Cookie
如果年代。长度> 0然后
s & =”“
结束如果
如果str.Length = 0然后
s & =“-”
其他的
& =逃脱(str)
结束如果
结束如果
如果(m_fields和CInt(W3CLOG.cs_referer)) =CInt(W3CLOG.cs_referer)然后
昏暗的str作为字符串= info.Referrer
如果年代。长度> 0然后
s & =”“
结束如果
如果str.Length = 0然后
s & =“-”
其他的
& =逃脱(str)
结束如果
结束如果
如果(m_fields和CInt(W3CLOG.cs_host)) =CInt(W3CLOG.cs_host)然后
昏暗的str作为字符串= info.Host
如果年代。长度> 0然后
s & =”“
结束如果
如果str.Length = 0然后
s & =“-”
其他的
& =逃脱(str)
结束如果
结束如果
如果(m_fields和CInt(W3CLOG.sc_status)) =CInt(W3CLOG.sc_status)然后
昏暗的n作为整数= info.Status
如果年代。长度> 0然后
s & =”“
结束如果
s & = n.ToString ()
结束如果
如果(m_fields和CInt(W3CLOG.sc_substatus)) =CInt(W3CLOG.sc_substatus)然后
昏暗的n作为整数= info.ProtocolSubStatus
如果年代。长度> 0然后
s & =”“
结束如果
s & = n.ToString ()
结束如果
如果(m_fields和CInt(W3CLOG.sc_win32_status)) =CInt(W3CLOG.sc_win32_status)然后
昏暗的n作为整数= info.Win32Status
如果年代。长度> 0然后
s & =”“
结束如果
s & = n.ToString ()
结束如果
如果(m_fields和CInt(W3CLOG.sc_bytes)) =CInt(W3CLOG.sc_bytes)然后
昏暗的n作为整数= info.BytesSent
如果年代。长度> 0然后
s & =”“
结束如果
如果n < 0然后
s & =“-”
其他的
s & = n.ToString ()
结束如果
结束如果
如果(m_fields和CInt(W3CLOG.cs_bytes)) =CInt(W3CLOG.cs_bytes)然后
昏暗的n作为整数= info.BytesReceived
如果年代。长度> 0然后
s & =”“
结束如果
如果n < 0然后
s & =“-”
其他的
s & = n.ToString ()
结束如果
结束如果
如果(m_fields和CInt(W3CLOG.time_taken)) =CInt(W3CLOG.time_taken)然后
昏暗的n作为整数= info.TimeTaken
如果年代。长度> 0然后
s & =”“
结束如果
如果n < 0然后
s & =“-”
其他的
s & = n.ToString ()
结束如果
结束如果
s & = Constants.vbCrLf
WriteString (s)
m_sw.Flush ()
结束子
结束类
公共_server作为服务器=没有什么
公共_result作为布尔=假
公共子W3CLogHandlerExample ()
试一试
昏暗的enumState作为状态
昏暗的_loghandler作为CW3CLogHandler
“创建服务器对象的一个实例
_server =新Leadtools.MediaStreaming.Server ()
“创建日志处理程序
_loghandler =新CW3CLogHandler (“ltmsServer_”,“LEADTOOLS流媒体服务器”,真正的,“% ltmsLogFolder %”0,假)
设置日志处理程序
_server。ILogHandler = _loghandler
出于演示,比较我们刚刚设置的界面
昏暗的ihandler作为ILtmsLogHandler =没有什么
ihandler = _server.ILogHandler
如果不ihandler是CType(_loghandler ILtmsLogHandler)然后
_result =假
返回
结束如果
“加载配置文件位于配置文件夹下的可执行的文件夹
本节”或评论运行服务器的默认设置
_server.ImportConfigFile (“% ltmsConfigFolder % \ LeadtoolsMediaStreamingServer.xml”)
“启动服务器
_server.Start ()
“确认演示目的的运行状态
enumState = _server.State
如果enumState = State.Started然后
显示一条消息,服务器正在运行,等待好
MessageBox.Show (“服务器已经开始。按OK停止。”,“LEADTOOLS流媒体的例子”,MessageBoxButtons。好的,MessageBoxIcon.Information)
结束如果
“停止服务器
_server。停止()
“删除日志处理程序
_server。ILogHandler =没有什么
_result =真正的
抓e1作为异常
_result =假
结束试一试
结束子
帮助收藏
光栅net|C API|c++类库|HTML5 JavaScript
文档net|C API|c++类库|HTML5 JavaScript
医疗net|C API|c++类库|HTML5 JavaScript
医疗Web查看器net
188宝金博怎么下载
支持的平台上
net, Java, Android和iOS / macOS组件
C / c++类库的API
HTML5 JavaScript库
你的邮件已经发送到支持!有人应该联系!如果你的问题是紧急请回到聊天。
聊天时间:
周一——周五,上午6点等
谢谢你的反馈!
请填写表单重新开始一个新的聊天。
所有代理目前离线。
聊天时间:
周一-周五
早上8:30 - 6点
联系我们请填写这张表格,我们将通过电子邮件联系你。