c#
VB
c++
[DispIdAttribute (21)]
公共intProtocolSubStatus {得到;}
只读的财产ProtocolSubStatus作为整数
财产intProtocolSubStatus {
intget ();
}
表示特定于协议的子状态错误码的整数。
使用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
{
保龄球m_enable;
intm_fields;
保龄球m_localtime;
DateTime m_dtfile;
字符串m_software;
字符串m_folder;
字符串m_prefix;
StreamWriter m_sw;
公共CW3CLogHandler (字符串前缀,字符串软件保龄球启用,字符串文件夹,int字段,保龄球本地时间)
{
m_prefix =前缀;
m_software =软件;
m_enable =启用;
m_folder =文件夹;
m_fields =字段;
m_localtime =作用;
}
~ CW3CLogHandler ()
{
}
无效WriteString (字符串str)
{
m_sw.Write (str);
}
DateTime取得时间(双dTime)
{
dt = DateTime. fromoadate (dTime);
如果(m_localtime)
返回dt.ToLocalTime ();
返回dt;
}
字符串GetLogPath (双时间戳)
{
DateTime dt = GetTime(timestamp);
字符串strFullPath;
试一试
{
PathResolver解析器=新PathResolver ();
strFullPath = resolver.Resolve (m_folder);
}
抓
{
返回"";
}
strFullPath + =“\ \”;
strFullPath + = m_prefix;
如果(m_localtime !)
{
strFullPath + = dt。ToString (“y-MM-dd-HH-mm-ss”).替换(“-”,"") +“UTC.log”;
}
其他的
{
strFullPath + = dt。ToString (“y-MM-dd-HH-mm-ss”).替换(“-”,"") +. log”;
}
返回strFullPath;
}
公共无效LoadConfig服务器(服务器)
{
保龄球使= m_enable;
保龄球本地时间= m_localtime;
字符串文件夹= m_folder;
int字段= m_fields;
保龄球肮脏的=假;
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文件夹,真正的|| fields != m_fields || m_localtime != 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 +“\ r \ n”;
WriteString(年代);
WriteString (“#版本:1.0 \ r \ n”);
DateTime dt = GetTime(timestamp);
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 = GetTime(info.TimeStamp);
如果(m_sw = =零| | dt。一天!= m_dtfile.Day || dt.Month != m_dtfile.Month || dt.Year != m_dtfile.Year)
{
如果(! CreateLog (info.TimeStamp))
返回;
}
}
如果((m_fields & (int) W3CLOG.date) = = (intW3CLOG.date)
{
DateTime dt = GetTime(info.TimeStamp);
如果(s.Length > 0)
s + =”“;
+ = dt。ToString (“yyyy-MM-dd”);
}
如果((m_fields & (int) W3CLOG.time) = = (intW3CLOG.time)
{
DateTime dt = GetTime(info.TimeStamp);
如果(s.Length > 0)
s + =”“;
+ = dt。ToString (“HH: mm: ss”);
}
如果((m_fields & (int) W3CLOG.s_sitename) = = (intW3CLOG.s_sitename)
{
字符串str = info.SiteName;
如果(s.Length > 0)
s + =”“;
如果(str.Length = = 0)
s + =“-”;
其他的
s + =逃脱(str);
}
如果((m_fields & (int) W3CLOG.s_computername) = = (intW3CLOG.s_computername)
{
字符串str = info.ComputerName;
如果(s.Length > 0)
s + =”“;
如果(str.Length = = 0)
s + =“-”;
其他的
s + =逃脱(str);
}
如果((m_fields & (int) W3CLOG.s_ip) = = (intW3CLOG.s_ip)
{
字符串str = info.ServerIP;
如果(s.Length > 0)
s + =”“;
如果(str.Length = = 0)
s + =“-”;
其他的
s + =逃脱(str);
}
如果((m_fields & (int) W3CLOG.cs_method) = = (intW3CLOG.cs_method)
{
字符串str = info.Method;
如果(s.Length > 0)
s + =”“;
如果(str.Length = = 0)
s + =“-”;
其他的
s + =逃脱(str);
}
如果((m_fields & (int) W3CLOG.cs_uri_stem) = = (intW3CLOG.cs_uri_stem)
{
字符串str = info.URIStem;
如果(s.Length > 0)
s + =”“;
如果(str.Length = = 0)
s + =“-”;
其他的
s + =逃脱(str);
}
如果((m_fields & (int) W3CLOG.cs_uri_query) = = (intW3CLOG.cs_uri_query)
{
字符串str = info.URIQuery;
如果(s.Length > 0)
s + =”“;
如果(str.Length = = 0)
s + =“-”;
其他的
s + =逃脱(str);
}
如果((m_fields & (int) W3CLOG.s_port) = = (intW3CLOG.s_port)
{
intn = info.ServerPort;
如果(s.Length > 0)
s + =”“;
s + = n.ToString ();
}
如果((m_fields & (int) W3CLOG.cs_username) = = (intW3CLOG.cs_username)
{
字符串str = info.UserName;
如果(s.Length > 0)
s + =”“;
如果(str.Length = = 0)
s + =“-”;
其他的
s + =逃脱(str);
}
如果((m_fields & (int) W3CLOG.c_ip) = = (intW3CLOG.c_ip)
{
字符串str = info.ClientIP;
如果(s.Length > 0)
s + =”“;
如果(str.Length = = 0)
s + =“-”;
其他的
s + =逃脱(str);
}
如果((m_fields & (int) W3CLOG.cs_version) = = (intW3CLOG.cs_version)
{
字符串str = info.ProtocolVersion;
如果(s.Length > 0)
s + =”“;
如果(str.Length = = 0)
s + =“-”;
其他的
s + =逃脱(str);
}
如果((m_fields & (int) W3CLOG.cs_user_agent) = = (intW3CLOG.cs_user_agent)
{
字符串str = info.UserAgent;
如果(s.Length > 0)
s + =”“;
如果(str.Length = = 0)
s + =“-”;
其他的
s + =逃脱(str);
}
如果((m_fields & (int) W3CLOG.cs_cookie) = = (intW3CLOG.cs_cookie)
{
字符串str = info.Cookie;
如果(s.Length > 0)
s + =”“;
如果(str.Length = = 0)
s + =“-”;
其他的
s + =逃脱(str);
}
如果((m_fields & (int) W3CLOG.cs_referer) = = (intW3CLOG.cs_referer)
{
字符串str = info.Referrer;
如果(s.Length > 0)
s + =”“;
如果(str.Length = = 0)
s + =“-”;
其他的
s + =逃脱(str);
}
如果((m_fields & (int) W3CLOG.cs_host) = = (intW3CLOG.cs_host)
{
字符串str = info.Host;
如果(s.Length > 0)
s + =”“;
如果(str.Length = = 0)
s + =“-”;
其他的
s + =逃脱(str);
}
如果((m_fields & (int) W3CLOG.sc_status) = = (intW3CLOG.sc_status)
{
intn = info.Status;
如果(s.Length > 0)
s + =”“;
s + = n.ToString ();
}
如果((m_fields & (int) W3CLOG.sc_substatus) = = (intW3CLOG.sc_substatus)
{
intn = info.ProtocolSubStatus;
如果(s.Length > 0)
s + =”“;
s + = n.ToString ();
}
如果((m_fields & (int) W3CLOG.sc_win32_status) = = (intW3CLOG.sc_win32_status)
{
intn = info.Win32Status;
如果(s.Length > 0)
s + =”“;
s + = n.ToString ();
}
如果((m_fields & (int) W3CLOG.sc_bytes) = = (intW3CLOG.sc_bytes)
{
intn = info.BytesSent;
如果(s.Length > 0)
s + =”“;
如果(n < 0)
s + =“-”;
其他的
s + = n.ToString ();
}
如果((m_fields & (int) W3CLOG.cs_bytes) = = (intW3CLOG.cs_bytes)
{
intn = info.BytesReceived;
如果(s.Length > 0)
s + =”“;
如果(n < 0)
s + =“-”;
其他的
s + = n.ToString ();
}
如果((m_fields & (int) W3CLOG.time_taken) = = (intW3CLOG.time_taken)
{
intn = info.TimeTaken;
如果(s.Length > 0)
s + =”“;
如果(n < 0)
s + =“-”;
其他的
s + = n.ToString ();
}
s + =“\ r \ n”;
WriteString(年代);
m_sw.Flush ();
}
}
公共服务器_server =零;
公共保龄球_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 =假;
返回;
}
}
//加载可执行文件夹下的config子文件夹中的配置文件
//或将此部分注释掉以使用服务器的默认设置运行
_server。ImportConfigFile (“% ltmsConfigFolder % \ \ LeadtoolsMediaStreamingServer.xml”);
//启动服务器
_server.Start ();
//为演示目的确认运行状态
enumState = _server.State;
如果(enumState = = State.Started)
{
//显示服务器正在运行的消息并等待OK
对话框。显示(服务器已启动。按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”).替换(“-”,"") &“UTC.log”
其他的
strFullPath & = dt。ToString (“y-MM-dd-HH-mm-ss”).替换(“-”,"") &. 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。月OrElsedt。年的< > m_dtfile。一年然后
如果(不CreateLog (info.TimeStamp))然后
返回
结束如果
结束如果
如果(m_fields和CInt(W3CLOG。日期)) =CInt(W3CLOG。日期)然后
昏暗的dtDate作为DateTime =取得时间(info.TimeStamp)
如果s.Length > 0然后
s & =”“
结束如果
& = dtDate。ToString (“yyyy-MM-dd”)
结束如果
如果(m_fields和CInt(W3CLOG.time)) =CInt(W3CLOG.time)然后
昏暗的dtTime作为DateTime =取得时间(info.TimeStamp)
如果s.Length > 0然后
s & =”“
结束如果
& = dtTime。ToString (“HH: mm: ss”)
结束如果
如果(m_fields和CInt(W3CLOG.s_sitename)) =CInt(W3CLOG.s_sitename)然后
昏暗的str作为字符串= info。SiteName
如果s.Length > 0然后
s & =”“
结束如果
如果str.Length = 0然后
s & =“-”
其他的
& =逃脱(str)
结束如果
结束如果
如果(m_fields和CInt(W3CLOG.s_computername)) =CInt(W3CLOG.s_computername)然后
昏暗的str作为字符串= info。ComputerName
如果s.Length > 0然后
s & =”“
结束如果
如果str.Length = 0然后
s & =“-”
其他的
& =逃脱(str)
结束如果
结束如果
如果(m_fields和CInt(W3CLOG.s_ip)) =CInt(W3CLOG.s_ip)然后
昏暗的str作为字符串= info。ServerIP
如果s.Length > 0然后
s & =”“
结束如果
如果str.Length = 0然后
s & =“-”
其他的
& =逃脱(str)
结束如果
结束如果
如果(m_fields和CInt(W3CLOG.cs_method)) =CInt(W3CLOG.cs_method)然后
昏暗的str作为字符串= info。方法
如果s.Length > 0然后
s & =”“
结束如果
如果str.Length = 0然后
s & =“-”
其他的
& =逃脱(str)
结束如果
结束如果
如果(m_fields和CInt(W3CLOG.cs_uri_stem)) =CInt(W3CLOG.cs_uri_stem)然后
昏暗的str作为字符串= info。URIStem
如果s.Length > 0然后
s & =”“
结束如果
如果str.Length = 0然后
s & =“-”
其他的
& =逃脱(str)
结束如果
结束如果
如果(m_fields和CInt(W3CLOG.cs_uri_query)) =CInt(W3CLOG.cs_uri_query)然后
昏暗的str作为字符串= info。URIQuery
如果s.Length > 0然后
s & =”“
结束如果
如果str.Length = 0然后
s & =“-”
其他的
& =逃脱(str)
结束如果
结束如果
如果(m_fields和CInt(W3CLOG.s_port)) =CInt(W3CLOG.s_port)然后
昏暗的n作为整数= info。ServerPort
如果s.Length > 0然后
s & =”“
结束如果
s & = n.ToString ()
结束如果
如果(m_fields和CInt(W3CLOG.cs_username)) =CInt(W3CLOG.cs_username)然后
昏暗的str作为字符串= info。用户名
如果s.Length > 0然后
s & =”“
结束如果
如果str.Length = 0然后
s & =“-”
其他的
& =逃脱(str)
结束如果
结束如果
如果(m_fields和CInt(W3CLOG.c_ip)) =CInt(W3CLOG.c_ip)然后
昏暗的str作为字符串= info。ClientIP
如果s.Length > 0然后
s & =”“
结束如果
如果str.Length = 0然后
s & =“-”
其他的
& =逃脱(str)
结束如果
结束如果
如果(m_fields和CInt(W3CLOG.cs_version)) =CInt(W3CLOG.cs_version)然后
昏暗的str作为字符串= info。ProtocolVersion
如果s.Length > 0然后
s & =”“
结束如果
如果str.Length = 0然后
s & =“-”
其他的
& =逃脱(str)
结束如果
结束如果
如果(m_fields和CInt(W3CLOG.cs_user_agent)) =CInt(W3CLOG.cs_user_agent)然后
昏暗的str作为字符串= info。UserAgent
如果s.Length > 0然后
s & =”“
结束如果
如果str.Length = 0然后
s & =“-”
其他的
& =逃脱(str)
结束如果
结束如果
如果(m_fields和CInt(W3CLOG.cs_cookie)) =CInt(W3CLOG.cs_cookie)然后
昏暗的str作为字符串= info。饼干
如果s.Length > 0然后
s & =”“
结束如果
如果str.Length = 0然后
s & =“-”
其他的
& =逃脱(str)
结束如果
结束如果
如果(m_fields和CInt(W3CLOG.cs_referer)) =CInt(W3CLOG.cs_referer)然后
昏暗的str作为字符串= info。介绍人
如果s.Length > 0然后
s & =”“
结束如果
如果str.Length = 0然后
s & =“-”
其他的
& =逃脱(str)
结束如果
结束如果
如果(m_fields和CInt(W3CLOG.cs_host)) =CInt(W3CLOG.cs_host)然后
昏暗的str作为字符串= info。宿主
如果s.Length > 0然后
s & =”“
结束如果
如果str.Length = 0然后
s & =“-”
其他的
& =逃脱(str)
结束如果
结束如果
如果(m_fields和CInt(W3CLOG.sc_status)) =CInt(W3CLOG.sc_status)然后
昏暗的n作为整数= info。状态
如果s.Length > 0然后
s & =”“
结束如果
s & = n.ToString ()
结束如果
如果(m_fields和CInt(W3CLOG.sc_substatus)) =CInt(W3CLOG.sc_substatus)然后
昏暗的n作为整数= info。ProtocolSubStatus
如果s.Length > 0然后
s & =”“
结束如果
s & = n.ToString ()
结束如果
如果(m_fields和CInt(W3CLOG.sc_win32_status)) =CInt(W3CLOG.sc_win32_status)然后
昏暗的n作为整数= info。Win32Status
如果s.Length > 0然后
s & =”“
结束如果
s & = n.ToString ()
结束如果
如果(m_fields和CInt(W3CLOG.sc_bytes)) =CInt(W3CLOG.sc_bytes)然后
昏暗的n作为整数= info。BytesSent
如果s.Length > 0然后
s & =”“
结束如果
如果n < 0然后
s & =“-”
其他的
s & = n.ToString ()
结束如果
结束如果
如果(m_fields和CInt(W3CLOG.cs_bytes)) =CInt(W3CLOG.cs_bytes)然后
昏暗的n作为整数= info。BytesReceived
如果s.Length > 0然后
s & =”“
结束如果
如果n < 0然后
s & =“-”
其他的
s & = n.ToString ()
结束如果
结束如果
如果(m_fields和CInt(W3CLOG.time_taken)) =CInt(W3CLOG.time_taken)然后
昏暗的n作为整数= info。TimeTaken
如果s.Length > 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 =假
返回
结束如果
’加载位于可执行文件夹下的config子文件夹中的配置文件
’或将此部分注释掉,以使用服务器的默认设置运行
_server。ImportConfigFile (“% ltmsConfigFolder % \ LeadtoolsMediaStreamingServer.xml”)
启动服务器
_server.Start ()
确认运行状态以作演示用途
enumState = _server。状态
如果enumState =状态。开始然后
’显示一条消息,提示服务器正在运行并等待OK
对话框。显示(服务器已启动。按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 API/ c++类库
HTML5 JavaScript库
您的邮件已发送到支持!应该有人联系你!如果你的事情很紧急,请回来聊天。
聊天时间:
周一至周五,美国东部时间上午8:30至下午6:00
感谢您的反馈!
请再次填写表格开始新的聊天。
所有代理目前都离线。
聊天时间:
周一-周五
上午8:30 -下午6点
如需联系我们,请填写此表格,我们将通过电子邮件与您联系。