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 ...
随机推荐
- Chrome浏览器切页快捷键
Chrome浏览器切换标签页快捷键 1.Ctrl + Tab 向左切换标签页 2.Ctrl + shift + Tab 向右切换 3.Ctrl + 1 切换到第一个页面 4.Ctrl + 9 切换到最 ...
- oracle 提取文本中的数字
提取文本中的数字部分,并转换为数字 TO_NUMBER(regexp_substr(AGE,'[0-9.]+'))
- Vue——解决移动端键盘弹起导致的页面fixed定位元素布局错乱
最近做了一个移动端项目,页面主体是由form表单和底部fixed定位的按钮组成,当用户进行表单输入时,手机软键盘弹起,此时页面的尺寸发生变化,底部fixed定位的元素自然也会上移,可能就会覆盖页面中的 ...
- 吴裕雄 python 神经网络——TensorFlow 花瓣分类与迁移学习(1)
import glob import os.path import numpy as np import tensorflow as tf from tensorflow.python.platfor ...
- Cisco AP-Regulatory Domain
这一note主要解释Regulatory Domain是什么.以较新的思科AP的型号举例,思科AP的PID一般都是按照如下的命名: AIR-AP3802I-H-K9C 按照自己的理解: AIR:其中的 ...
- 【转载】Linux截图工具
如果linux安装了gnome,那么系统自带了一款截屏软件 gnome-screenshot,使用起来很方便,功能齐备,支持命令行.简单介绍如下. 功能 对屏幕,窗口,或自定义的区域进行截图. 选项 ...
- Linux OS 集群 免密登录
1. ssh-keygen 生成密钥 2. ssh-copy-id 集群主机名 参考: [图文详解]linux下配置远程免密登录
- 【PAT甲级】1059 Prime Factors (25 分)
题意: 输入一个正整数N(范围为long int),输出它等于哪些质数的乘积. trick: 如果N为1,直接输出1即可,数据点3存在这样的数据. 如果N本身是一个质数,直接输出它等于自己即可,数据点 ...
- 我的B站主页:https://space.bilibili.com/611212 内有视频题解
我的B站主页:https://space.bilibili.com/611212 内有视频题解
- Python 基础之面向对象之装饰器@property
一.定义 装饰器@property可以把方法变成属性使用作用: 控制类内成员的获取 设置 删除获取 @property设置 @自定义名.setter删除 @自定义名.deleter 二.具体实现 1. ...