vb.net 写日志文件
Module mod_LogAccessHt
#Region "Const"
    Public Const __PREFIX_ERROR__ As String = "Error_"
    Public Const __PREFIX_TRACE__ As String = "Trace_"
    Public Const __PREFIX_DEBUG__ As String = "Debug_"
    Public Const __PREFIX_SQL__ As String = "Sql_"
#End Region
    ''' <summary>
    ''' ログレベル
    ''' </summary>
    ''' <remarks></remarks>
    Public Enum enumLogLevel As Integer
        __LOG_LVL_EMERG__   ' system is unusable
        __LOG_LVL_ALERT__   ' action must be taken immediately
        __LOG_LVL_CRIT__    ' critical conditions
        __LOG_LVL_ERR__     ' error conditions
        __LOG_LVL_WARN__    ' warning conditions
        __LOG_LVL_NOTE__    ' normal but significant condition
        __LOG_LVL_INFO__    ' informational
        __LOG_LVL_DEBUG__   ' debug-level messages
        __LOG_LVL_SQL__     ' issued SQL string
    End Enum
    ''' <summary>
    ''' ログアクセスクラス
    ''' </summary>
    ''' <remarks></remarks>
    Public Class cls_LogAccess
        Private Const __LOG_DIR__ As String = "log_dir"
        Private Const __LOG_EXT__ As String = ".log"
        Private m_strPreFix As String
        ' コンストラクタ
        Public Sub New(ByVal preFix As String)
            m_strPreFix = preFix
        End Sub
        ''' <summary>
        ''' ログ出力
        ''' </summary>
        ''' <param name="msg">メッセージ</param>
        ''' <param name="ex">Exception(無指定の場合はメッセージのみ出力)</param>
        ''' <remarks></remarks>
        Public Sub WriteLog( _
            ByVal msg As String, Optional ByVal ex As Exception = Nothing)
            Try
                ' 設定ファイル取得
                Dim clsProf As cls_Profile = fnc_GetProfile()
                clsProf.SetSection(__ROOT_SECTION__)
                ' ログフォルダ名取得
                Dim logFolder As String = clsProf.GetProfileString(__LOG_DIR__)
                If logFolder = "" Then
                    ' ログフォルダ名作成
                    logFolder = System.AppDomain.CurrentDomain.BaseDirectory & "Log"
                End If
                ' ログフォルダ名作成
                System.IO.Directory.CreateDirectory(logFolder)
                ' ログファイル名作成
                Dim dt As DateTime = Now
                Dim logFile As String = logFolder & "\" & m_strPreFix & dt.ToString("dd") & __LOG_EXT__
                ' 前月翌日分のログファイル削除(1ヶ月分のログファイルしか保存しないようにするため)
                Dim logNext As String = _
                    logFolder & "\" & m_strPreFix & dt.AddDays(1).ToString("dd") & __LOG_EXT__
                System.IO.File.Delete(logNext)
                ' ログ出力文字列作成
                Dim logStr As String
                logStr = dt.ToString("yyyy/MM/dd HH:mm:ss") & vbTab & msg
                If ex Is Nothing = False Then
                    logStr = logStr & vbCrLf & ex.ToString
                End If
                ' Shift-JISでログ出力
                Dim sw As IO.StreamWriter = Nothing
                Try
                    sw = New IO.StreamWriter(logFile, True, _
                        System.Text.Encoding.GetEncoding("Shift-JIS"))
                    sw.WriteLine(logStr)
                Catch ex2 As Exception
                Finally
                    If sw Is Nothing = False Then sw.Close()
                End Try
            Catch ex2 As Exception
            End Try
        End Sub
        Public Sub WriteErrorLog(ByVal kind As Integer, ByVal msg As String, Optional ByVal ex As Exception = Nothing)
            Dim strMsg As String = ""
            Select Case kind
                Case enumLogLevel.__LOG_LVL_EMERG__     ' system is unusable
                    strMsg = "[EMERG] "
                Case enumLogLevel.__LOG_LVL_ALERT__     ' action must be taken immediately
                    strMsg = "[ALART] "
                Case enumLogLevel.__LOG_LVL_CRIT__      ' critical conditions
                    strMsg = "[CRIT] "
                Case enumLogLevel.__LOG_LVL_ERR__       ' error conditions
                    strMsg = "[ERROR] "
                Case enumLogLevel.__LOG_LVL_WARN__      ' warning conditions
                    strMsg = "[WARN] "
                Case enumLogLevel.__LOG_LVL_NOTE__      ' normal but significant condition
                    strMsg = "[NOTE] "
                Case enumLogLevel.__LOG_LVL_INFO__      ' informational
                    strMsg = "[INFO] "
                Case enumLogLevel.__LOG_LVL_DEBUG__     ' debug-level messages
                    strMsg = "[DEBUG] "
                Case enumLogLevel.__LOG_LVL_SQL__       ' issued SQL string
                    strMsg = "[SQL] "
            End Select
            ' HT名が分かっていれば出力する
            If pstrHTNo Is Nothing OrElse pstrHTNo = "" Then
                strMsg &= "[  ]"
            Else
                strMsg &= "[" & pstrHTNo & "]"
            End If
            strMsg = strMsg & msg
            WriteLog(strMsg, ex)
        End Sub
    End Class
    ''' <summary>
    ''' ログファイル出力
    ''' </summary>
    ''' <param name="pre_fix">ログファイルの接頭語</param>
    ''' <param name="kind">ログレベル</param>
    ''' <param name="msg">出力文字列</param>
    ''' <param name="ex">エクセプション</param>
    ''' <remarks></remarks>
    Public Sub sub_WriteErrorLog(ByVal pre_fix As String, ByVal kind As Integer, ByVal msg As String, Optional ByVal ex As Exception = Nothing)
        Dim clsLog As cls_LogAccess = New cls_LogAccess(pre_fix)
        clsLog.WriteErrorLog(kind, msg, ex)
    End Sub
End Module
vb.net 写日志文件的更多相关文章
- [转]ASP.NET Core 开发-Logging 使用NLog 写日志文件
		本文转自:http://www.cnblogs.com/Leo_wl/p/5561812.html ASP.NET Core 开发-Logging 使用NLog 写日志文件. NLog 可以适用于 . ... 
- ASP.NET Core 开发-Logging 使用NLog 写日志文件
		ASP.NET Core 开发-Logging 使用NLog 写日志文件. NLog 可以适用于 .NET Core 和 ASP.NET Core . ASP.NET Core已经内置了日志支持,可以 ... 
- Log4j写日志文件使用详解
		Log4j输出到控制台成功,写入文件失败 - Log4j和commons log的整合 一.今天在使用commongs-logging.jar和log4j.properties来输出系统日志的时候,发 ... 
- .net core 2.0使用NLog写日志文件
		原文地址:传送门 之前也看了 linezero 大佬写的教程,但是总是没有成功写入日志文件.按照 曲廉卿 的已成功,以下正文: 最近研究了一下NLog的使用方式,简单的入了一下门. 实现的功能,对于不 ... 
- 为何要打印日志?C++在高并发下如何写日志文件(附源码)?
		为何要打印日志?让程序裸奔不是一件很快乐的事么? 有些BUG就像薛定谔的猫,具有波粒二象性,当你试图去观察它时它就消失了,当你不去观察它时,它又会出现.当你在测试人员面前赌咒发誓,亲自路演把程序跑一遍 ... 
- kettle作业中的js如何写日志文件
		在kettle作业中JavaScript脚本有时候也扮演非常重要的角色,此时我们希望有一些日志记录.下面是job中JavaScript记录日志的方式. job的js写日志的方法. 得到日志输出实例 o ... 
- php服务端写日志文件
		1.需求 在服务端记录日志 2.基础版 最基础的文件读写,(要注意window和linux的换行符,window是\r\n,linux是\n),这里就写入一个时间. <?php $handle ... 
- 修改winform安装包写日志文件权限
		1.如果程序有写入文件的功能要添加该文件 并配置该属性 改成这个即可 
- 一种多线程写日志文件的解决方案 c#源代码演示
		using System;using System.Collections.Generic;using System.Collections;using System.Text;using Syste ... 
随机推荐
- EVE扩大虚拟内存
			1.首先通过df -lh命令查看虚拟机的根目录下是否有足够大的硬盘空间. root@eve-ng:~# df -hFilesystem Size Used Av ... 
- 设计模式开始--UML类之间关系表示
			平常写代码写的比较多,没有从架构的层次了解类与类之间的关系,下面就从代码的层面论述UML中类与类质之间的关系 实线的关系要强于虚线 1.extends 表示继承 2.implements表示实现 3. ... 
- 算法复习 : 插入排序原理,记忆,时间复杂度 (7行java实现)
			最近啃了一遍吴伟民老师的<数据结构>,记录一些心得. 一种简洁的插入排序 : 1.重要概念 : 哨兵 1.在我们要排序的数组中,哨兵做为一个辅助的位置,一般是0下标的槽位做为哨兵 2.哨兵 ... 
- Flask, Django - 区别,个人体会
			1. 目录结构 一般情况下,Django很系统.统一.Flask项目目录风格不同一,即使用上了蓝图. 2. 数据库迁移 Flask要用第三方extensions,而Django自带,这个很方便. 3. ... 
- python 语法-参数注释
			python 语法-参数注释 最近碰到的这样的代码: def func(a:"shuoming") -> int: print("函数已运行.") fun ... 
- 解决mysql和navicat乱码问题
			1,首先进入mysql的my.ini文件,进行编码修改,全部改成utf8编码(这里就不赘述了,网上一搜一堆) 2,最重要的一点,把原先navicat创建的连接断开,重新创建新连接,在该新连接下创建库, ... 
- DOCK-SWARM
			服务原理: 创建集群:建立ingress网络,网关xxxxx.xxx.xxx.1 管理节点:docker swarm init --advertise-addr 192.168.4.119 工作节点: ... 
- 关于High CPU及基本排查
			在实际的网络中,总会存在设备出现high CPU的情况,这种情况下,往往会让网络管理员比较着急,因为如果CPU持续high,可能导致设备的性能降低,严重还可能导致设备down掉. 本篇记录,主要记录一 ... 
- 思科室外AP无法注册到WLC
			思科的一些新的室外AP,在购买回来时,有时候会出现无法加入WLC的情况,现象基本是无法加入,或感觉加入了,立马又掉了. 例如: AIR-AP1562E-H-K9 AIR-AP1572EAC-H-K9 ... 
- java 使用poi 导入Excel 数据到数据库
			由于我个人电脑装的Excel是2016版本的,所以这地方我使用了XSSF 方式导入 . 1先手要制定一个Excel 模板 把模板放入javaWeb工程的某一个目录下如图: 2模板建好了后,先实现模板下 ... 
