欢迎光临
我们一直在努力

asp写的日志处理方法-ASP教程,ASP应用

建站超值云服务器,限时71元/月

一、实现方法
      一个书写日志的函数,提供几个参数,用户程序调用这个函数就可以实现日志的记录。日志记录到xml文件中,日志文件按日期生成,每天新建立一个日志文件,文件名为:yyyy_mm_dd.xml,分别用了年月日。而查看日志也日常简单,用户想看哪天的日志,只要直接调用该xml文件即可。因为xml文件已经默认了一个xsl文件来格式化输出。
二、书写日志的方法
’记录日志的程序
’作者:塞北的雪
’日期:2004.11.20
’username :用户信息(标示进行该操作的人员)
’operate  :操作(标示用户进行了什么操作)
’userip   :用户ip(标示用户用于登录系统的计算机的ip地址)
’opdate   :用户操作发生的日期
’日志写入一个xml文件,第一次写入时如果xml文件不存在,则创建。
’返回值:1  表示打开日志文件时出错
’返回值:9  表示正确完成写入日志文件
 
 
function writesyslog(sys_userid,sys_username,operate)
    dim op_username
    if  trim(sys_userid)=””  and trim(sys_username)=””  then  
  op_username=”匿名”
 else
     op_username = sys_userid & “/” & sys_username
 end if
 
 xmlpath=”/” & getroot() & “/log/syslog/”
 xmlfile=replace(cstr(convertdate(date())),”-“,”_”) & “.xml”
 rootnode=”syslog”                  ’日志文件根节点名字
 logfile=server.mappath(xmlpath & xmlfile)  ’日志文件路径
 set fso=server.createobject(“scripting.filesystemobject”)
 
 ’如果日志文件不存在,就创建一个,并写入头信息和根信息
 if not fso.fileexists(logfile) then
       fso.createtextfile logfile
       set fff=fso.getfile(logfile)
       set mmm=fff.openastextstream(2)
       mmm.write “<?xml version=””1.0″” encoding=””gb2312″” ?>” & vbcrlf & “<?xml-stylesheet type=’text/xsl’ href=’../loginfo.xsl’?>” & vbcrlf &  “<” & rootnode & “></” & rootnode & “>”
       set mmm=nothing
       set fff=nothing
 end if 
 set fso=nothing
 
 set xd = server.createobject(“msxml2.domdocument”)  
 xd.async = false  
 xd.load(logfile) 
 if xd.parseerror.errorcode<>0 then 
      writesyslog=1   ’打开日志文件出错
         exit function
 end if 
 
 ’创建新节点信息
 
 set et=xd.documentelement  
 
 
    
    set cnode=xd.createelement(“log”)
    et.appendchild(cnode)
   
    set node2=xd.createelement(“username”)
    node2.text=op_username
    cnode.appendchild(node2)
    set node2=xd.createelement(“operate”)
    node2.text=operate
    cnode.appendchild(node2)
    set node2=xd.createelement(“userip”)
    node2.text=request.servervariables(“remote_addr”)
    cnode.appendchild(node2)
    set node2=xd.createelement(“opdate”)
    node2.text=cstr(now())
    cnode.appendchild(node2)
    xd.save logfile   ’写入日志文件
    
    set cnode=nothing
    set node2=nothing
    set xd=nothing
    writesyslog=9  ’说明正常写入了日志信息
end function  

 ’获得当前虚拟目录的名字
 function getroot()
    url=request.servervariables(“url”)
    url=right(url,len(url)-1)
    getroot= mid(url,1,instr(url,”/”)-1)
 end function
 
’将一个一位的数字前面加零
function fillzero(str)
   ttt=str
   if len(str)=1 then
      ttt=”0″ & str
   end if
   fillzero=ttt
end function
’转化日期,将 一位补上零  2003-1-2  –>  2003-01-02
function convertdate(tdate)
   ttt=tdate
   if isdate(tdate) then
      ttt=year(tdate) & “-” & fillzero(month(tdate)) & “-” & fillzero(day(tdate))
   end if
   convertdate=ttt
end function
三、用户格式化的xsl文件:
<?xml version=”1.0″?>
<xsl:stylesheet version=”1.0″ xmlns:xsl=”http://www.w3.org/1999/xsl/transform”  xmlns:msxsl=”urn:schemas-microsoft-com:xslt” xmlns:user=”http://www.cccar.com.cn/” 
exclude-result-prefixes=”msxsl user”>
<!– localized strings –>
<xsl:variable name=’columnheader_username’>用户</xsl:variable>
<xsl:variable name=’columnheader_time’>时间</xsl:variable>
<xsl:variable name=’columnheader_operate’>操作</xsl:variable>
<xsl:variable name=’columnheader_address’>ip地址</xsl:variable>
<!– variables –>
<xsl:variable name=’tablestyle’>background-color:#dae6d8;font-family:simsun, verdana; font-size:75%; text-align:left; vertical-align:top</xsl:variable>
<xsl:variable name=’headerstyle’>background:a0b0a8;color:#000000;border-bottom:1 solid black;border-top:1 solid black</xsl:variable>
<msxsl:script language=”javascript” implements-prefix=”user”> 
   function xmldatetime(nodelist) { 
           return date.parse(nodelist.replace(/-/g,”/”)); 
        } 
 </msxsl:script> 
<xsl:output omit-xml-declaration=”yes”/> 
<xsl:template match=”syslog”>
    <html>
    <head>
        <title>
            日志查看
        </title>
    </head>
    <body style=’margin:10;background-color:#dae6d8’>
        <div align=”center”>
        <table    style=”{$tablestyle}” width=”100%” align=”center” cellspacing=’0’>
          
            <thead>
                <tr height=”23″>
                    
                    <th width=”15%” style=”{$headerstyle}”>
                        <xsl:value-of select=”$columnheader_username”/>
                    </th>
                    <th width=”20%” style=”{$headerstyle}”>
                        <xsl:value-of select=”$columnheader_time”/>
                    </th>
                    <th width=”50%” style=”{$headerstyle}”>
                        <xsl:value-of select=”$columnheader_operate”/>
                    </th>
                    <th width=”15%” style=”{$headerstyle}”>
                        <xsl:value-of select=”$columnheader_address”/>
                    </th>
                </tr>
            </thead>
            
            <tbody style=’vertical-align:top’>
                 <tr ><td colspan=”4″ height=”5″></td></tr>  
                 <xsl:for-each select=”log”>
                    <xsl:sort order=’ascending’  select=”user:xmldatetime(string(opdate))” data-type=”number”/>
                     
                   <tr height=”23″> 
                    
                     <td valign=”bottom”><xsl:value-of select=”username”/></td>
                     <td valign=”bottom” ><xsl:value-of select=”opdate”/></td>
                     <td valign=”bottom” ><xsl:value-of select=”operate”/></td>
                     <td valign=”bottom” ><xsl:value-of select=”userip”/></td>  
                  </tr>
                  <tr bgcolor=”#999999″><td colspan=”4″ height=”1″></td></tr>  
                </xsl:for-each>
                
                <tr><td colspan=”4″ align=”right”>合计:<xsl:value-of select=”count(log)”/> 条 </td></tr>    
            </tbody>
        </table>
</div>
    </body>
    </html>
</xsl:template>
</xsl:stylesheet>

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » asp写的日志处理方法-ASP教程,ASP应用
分享到: 更多 (0)