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. Go之NSQ

    文章引用自 NSQ NSQ是目前比较流行的一个分布式的消息队列,本文主要介绍了NSQ及Go语言如何操作NSQ. NSQ介绍 NSQ是Go语言编写的一个开源的实时分布式内存消息队列,其性能十分优异. N ...

  2. 企业面试问题收集-java基础

    Java基础部分 1.1   在登录时进行后台验证,后台获取到loginpass与数据库值对比一直? 1.2   Java中的方法覆盖(Overwrite)和方法重载(Overloading)是什么意 ...

  3. 反编译 java

    1.winrar https://www.rarlab.com/ 2.github  jd-gui http://java-decompiler.github.io/ SignNatureTest.j ...

  4. JPA中实现双向多对多的关联关系(附代码下载)

    场景 JPA入门简介与搭建HelloWorld(附代码下载): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103473937 ...

  5. 4_6 师兄帮帮忙(UVa12412)(选做)

    你好,我是外国语学院的本科生.正如你所知道的,编程是一个  在我们大学必修课,即使他/她的专业是远离计算机科学.我根本不喜欢这个 课程,因为我不擅长电脑,我不想有任何编程的尝试!  但我不得不做作业: ...

  6. Django模板及路由的配置

    学习内容: (1)路由的配置 (2)模板的介绍 (3)模板显示数据 一.路由的配置 以上一篇文章的名字Booketest项目,有一个子模块demo1进行讲解. 1.首先在Booktest项目下的同名子 ...

  7. 调用webservice服务(通过反射的方式动态调用)

    调用 ";//系统类别 var jkxlh = "";//接口序列号 var jkid = "68W05";//接口id string WriteXm ...

  8. Dism++ 更新管理提示“无法连接服务器”

    Dism++ 更新管理提示"无法连接服务器" 下载wsusscn3.cab,放入Dism++安装目录下Config文件夹中.

  9. 配置和验证AP功率

    1.针对自主AP(Autonomous AP) 使用'power local'配置命令配置AP或Bridge Radio功率级别.在2.4 GHz,802.11g Radio上,您可以设置正交频分复用 ...

  10. 解决springmvc拦截器拦截静态资源的两种方式

    1.是采用<mvc:default-servlet-handler />,(一般Web应用服务器默认的Servlet名称是"default",所以这里我们激活Tomca ...