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 ...
随机推荐
- Genetic Algorithm 资源
算法源码: NeuralGenetic : https://github.com/ahmedfgad/NeuralGenetic evolving-simple-organisms : https:/ ...
- JS中的提升(即变量和函数声明移动到代码顶部)
先看代码(第一个代码片段): console.log(a); var a = 1; 如果你认为这是一段不合法的代码,在调用console.log()的时候会输出undefined,你完全正确.但是如果 ...
- 计算机二级-C语言-对二维数组数据进行处理。对文件进行数据输入。形参与实参。
//函数fun的功能为:计算x所指数组中N个数的平均值(规定所有数都为正数),平均值通过形参返回给主函数,将小于平均值且最接近平均值的数作为函数值返回,并输出. //重难点:形参与实参之间,是否进行了 ...
- Centos610安装Archiva
安装说明: https://www.cwiki.us/display/ArchivaZH/Linux+Installing+Standalone 1.下载地址 https://archiva.apac ...
- Centos610 Oracle 监听文件配置参考
lister.ora配置参考 # listener.ora Network Configuration File: /home/oracle/app/oracle/product//dbhome_1/ ...
- 「NOI2016」区间
传送门 Luogu 解题思路 对于选出的区间,我们可以直接用线段树维护区间内单点被覆盖次数最大值. 那么解题重心便落在了选取方式上. 为了让最大值最小,考虑尺取,不能二分,降低效率而且不好写. 先将区 ...
- 图解 Kafka 水印备份机制
高可用是很多分布式系统中必备的特征之一,Kafka 日志的高可用是通过基于 leader-follower 的多副本同步实现的,每个分区下有多个副本,其中只有一个是 leader 副本,提供发送和消费 ...
- Tensorflow机器学习入门——读取数据
TensorFlow 中可以通过三种方式读取数据: 一.通过feed_dict传递数据: input1 = tf.placeholder(tf.float32) input2 = tf.placeho ...
- java 第三次课后作业
1.java字段初始化的规律 public class gouzao { public static void main(String[] args) { test te=new test(); Sy ...
- Nginx安装部署!
安装Nginx方法一:利用u盘导入Nginx软件包 二nginx -t 用于检测配置文件语法 如下报错1:配置文件43行出现错误 [root@www ~]# nginx -tnginx: [emerg ...