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 写日志文件的更多相关文章

  1. [转]ASP.NET Core 开发-Logging 使用NLog 写日志文件

    本文转自:http://www.cnblogs.com/Leo_wl/p/5561812.html ASP.NET Core 开发-Logging 使用NLog 写日志文件. NLog 可以适用于 . ...

  2. ASP.NET Core 开发-Logging 使用NLog 写日志文件

    ASP.NET Core 开发-Logging 使用NLog 写日志文件. NLog 可以适用于 .NET Core 和 ASP.NET Core . ASP.NET Core已经内置了日志支持,可以 ...

  3. Log4j写日志文件使用详解

    Log4j输出到控制台成功,写入文件失败 - Log4j和commons log的整合 一.今天在使用commongs-logging.jar和log4j.properties来输出系统日志的时候,发 ...

  4. .net core 2.0使用NLog写日志文件

    原文地址:传送门 之前也看了 linezero 大佬写的教程,但是总是没有成功写入日志文件.按照 曲廉卿 的已成功,以下正文: 最近研究了一下NLog的使用方式,简单的入了一下门. 实现的功能,对于不 ...

  5. 为何要打印日志?C++在高并发下如何写日志文件(附源码)?

    为何要打印日志?让程序裸奔不是一件很快乐的事么? 有些BUG就像薛定谔的猫,具有波粒二象性,当你试图去观察它时它就消失了,当你不去观察它时,它又会出现.当你在测试人员面前赌咒发誓,亲自路演把程序跑一遍 ...

  6. kettle作业中的js如何写日志文件

    在kettle作业中JavaScript脚本有时候也扮演非常重要的角色,此时我们希望有一些日志记录.下面是job中JavaScript记录日志的方式. job的js写日志的方法. 得到日志输出实例 o ...

  7. php服务端写日志文件

    1.需求 在服务端记录日志 2.基础版 最基础的文件读写,(要注意window和linux的换行符,window是\r\n,linux是\n),这里就写入一个时间. <?php $handle ...

  8. 修改winform安装包写日志文件权限

    1.如果程序有写入文件的功能要添加该文件 并配置该属性 改成这个即可

  9. 一种多线程写日志文件的解决方案 c#源代码演示

    using System;using System.Collections.Generic;using System.Collections;using System.Text;using Syste ...

随机推荐

  1. div 悬浮

    一个小需求,鼠标移动一个产品那, 显示这个产品的具体信息 代码如下: <a href="javascript:void(0);" onclick="frameSea ...

  2. tomcat 开机自启

    d /usr/lib/systemd/system touch tomcat.service chmod 777 tomcat.service vi tomcat.service [Unit]Desc ...

  3. cascadia-code 程序员友好字体

    下载地址:https://github.com/microsoft/cascadia-code/releases/download/v1911.21/Cascadia.ttf 下载后右键点击下载的文件 ...

  4. LLC半桥谐振变换器调试记录

    1.判断二极管是否击穿 2.判断mos管是否烧坏 直接用声音档,发出响声说明击穿了 3.测试二极管的正负极方法 将万用表调到二极管档 1.信号发生芯片周围的电阻 2.反馈部分的电阻 3.实验准备部分: ...

  5. PyQt5剪切板操作

    1.使用剪切板import sys,mathfrom PyQt5.QtWidgets import *from PyQt5.QtGui import *from PyQt5.QtCore import ...

  6. Many Formulas

    You are given a string S consisting of digits between 1 and 9, inclusive. You can insert the letter ...

  7. 吴裕雄--天生自然Numpy库学习笔记:NumPy 位运算

    bitwise_and() 函数对数组中整数的二进制形式执行位与运算. import numpy as np print ('13 和 17 的二进制形式:') a,b = 13,17 print ( ...

  8. lc 0219

    目录 ✅ 463. 岛屿的周长 描述 解答 cpp py ✅ 1122. 数组的相对排序 描述 解答 cpp py ✅ 876. 链表的中间结点 描述 解答 cpp ✅ 1160. 拼写单词 描述 解 ...

  9. Python数据分析之Numpy操作大全

    从头到尾都是手码的,文中的所有示例也都是在Pycharm中运行过的,自己整理笔记的最大好处在于可以按照自己的思路来构建矿建,等到将来在需要的时候能够以最快的速度看懂并应用=_= 注:为方便表述,本章设 ...

  10. 关于编译QT官方的MQTT库.

    先放一位博主的资料,参阅了其中资料,表示感谢: https://www.cnblogs.com/yexiaopeng/p/8542894.html ########################## ...