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 ...
随机推荐
- 在visual studio 2015 中调试caffe
看到这里,默认已经安装并编译过caffe了. 要学习caffe源码就要调试,在windows下调试.使用visual studio 2015调试caffe源码. 第一步:将生成caffe.lib的ca ...
- 数制的运用-CodeForces - 535B
题解: 因为每一位只可能是4或者7,可以类比二进制的思想. 基数为2,每一位的权值为2i-1:数字4表示的大小为1*2i-1:数字7表示的大小为2*2i-1. 将给定的n按照这种方法进行分解,求和.即 ...
- HTML+CSS—背景图片、图片定位
设置背景图片格式: background-image: url(img/ic.jpg); 注意点: 如果父容器面积大于背景图片,默认显示该图片整面平铺 设置是否需要平铺属性: background-r ...
- codeforces-1271A - Suits
A. Suits A new delivery of clothing has arrived today to the clothing store. This delivery consist ...
- POJ 1995 Raising Modulo Numbers(快速幂)
嗯... 题目链接:http://poj.org/problem?id=1995 快速幂模板... AC代码: #include<cstdio> #include<iostream& ...
- 《一篇文章读懂HTTPS及其背后的加密原理》阅读笔记
HTTPS(Hypertext Transfer Protocol Secure,超文本传输安全协议),是以安全为目标的HTTP通道,简单讲是HTTP的安全版.这篇文章深入介绍了它的原理. 当我们适用 ...
- 吴裕雄--天生自然Numpy库学习笔记:NumPy 从已有的数组创建数组
import numpy as np x = [1,2,3] a = np.asarray(x) print (a) import numpy as np x = (1,2,3) a = np.asa ...
- Python数据分析之Numpy操作大全
从头到尾都是手码的,文中的所有示例也都是在Pycharm中运行过的,自己整理笔记的最大好处在于可以按照自己的思路来构建矿建,等到将来在需要的时候能够以最快的速度看懂并应用=_= 注:为方便表述,本章设 ...
- 结对编程任意Android App Demo
一.产品说明 1.编写目的:用于获取百度图标. 2.情景设计:本产品用于展示图标.随着21世纪各类元素的普及,大部分的人群想下载各类网站的图标,也为了方便用户更便捷的下载而开发的. 3.Demo主要实 ...
- 反射实现定位Servlet中的方法
public class BaseServlet extends HttpServlet{ @Override protected void service(HttpServletRequest re ...