日志log
public class LoggerHelper
{
private static Queue<string> qMsg = null;
private static string logFilePath = @"D:\log\"+ DateTime.Now.ToString("yyyy-MM-dd") + ".txt";//当然也可以改成读取配置文件
static LoggerHelper()
{
qMsg = new Queue<string>();
//存入日志
Run();
}
public static void WriteLog(string strLog)
{
if (string.IsNullOrEmpty(strLog))
{
return;
}
strLog = strLog.Replace("\n", "\r\n");
if (!File.Exists(logFilePath))
{
File.Create(logFilePath).Dispose();
}
using (StreamWriter sw = File.AppendText(logFilePath))
{
sw.WriteLine("[" + DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss") + "] " + strLog);
}
}
public static void Run()
{
ThreadPool.QueueUserWorkItem(a =>
{
while (true)
{
string tmsg = string.Empty;
lock (qMsg)
{
)
tmsg = qMsg.Dequeue();
}
if (!String.IsNullOrEmpty(tmsg))
{
WriteLog(tmsg);
}
)
{
Thread.Sleep();
}
}
});
}
public static void Run2()
{
Task.Run(() =>
{
while (true)
{
string tmsg = string.Empty;
lock (qMsg)
{
)
tmsg = qMsg.Dequeue();
}
if (!String.IsNullOrEmpty(tmsg))
{
WriteLog(tmsg);
}
)
{
Thread.Sleep();
}
}
});
}
public static void WriteLogAsync(string strlog)
{
lock (qMsg)
{
qMsg.Enqueue(strlog);
}
}
public static void WriteLogAsync(string filepath, string strlog)
{
if (string.IsNullOrEmpty(filepath))
{
WriteLogAsync(strlog);
}
else
{
logFilePath = filepath;
lock (qMsg)
{
qMsg.Enqueue(strlog);
}
}
}
}
使用:
static void Main(string[] args)
{
string filepath=@"F:\log\"+ DateTime.Now.ToString("yyyy-MM-dd") + ".txt";
Parallel.For(,,index=>{
string msg1 = "test" + index.ToString();
LoggerHelper.WriteLogAsync("", msg1);
});
Console.ReadLine();
}
日志log的更多相关文章
- 如何正确使用日志Log
title: 如何正确使用日志Log date: 2015-01-08 12:54:46 categories: [Python] tags: [Python,log] --- 文章首发地址:http ...
- 一件关于数据库日志log的无聊事情
为何说是无聊的记录呢? 因为事先把问题想复杂了,事后发现的时候觉得更是无聊的行为.还是写下来,毕竟很少弄这么无聊的事情. 事情起因是需要给服务器做性能基数(baseline),用sqldiag 提取了 ...
- Expo大作战(六)--expo开发模式,expo中exp命令行工具,expo中如何查看日志log,expo中的调试方式
简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,将全部来与官网 我猜去全部机翻+个人 ...
- C# 分析 IIS 日志(Log)
由于最近又要对 IIS日志 (Log) 分析,以便得出各个搜索引擎每日抓取的频率,所以这两天一直在尝试各个办法来分析 IIS 日志 (Log),其中尝试过:导入数据库.Log parser.Powse ...
- sql2008r 收缩数据库日志log文件;删除errorlog文件的方法
1.清空log文件,以减少数据库文件log所占的空间 USE dbname1 ; GO ALTER DATABASE dbname1 SET RECOVERY SIMPLE;--设置简单恢复模式 GO ...
- 关于调试日志Log
__VA_ARGS__ 是一个可变参数的宏,这个可变参数的宏是新的C99规范中新增的,目前似乎只有gcc支持(VC6.0的编译器不支持).宏前面加上##的作用在于,当可变参数的个数为0时,这里的## ...
- 向服务器写入错误日志-log
/// <summary> /// 写日志,方便测试(看网站需求,也可以改成把记录存入数据库) /// </summary> /// <param name=" ...
- git日志--log
1. 查找改动某个文件所有的日志 git log --pretty=oneline somefile.java git log --oneline somefile.java git log --pr ...
- 日志log4j配置详情,日志log具体到你想不到
一.Log4j简介Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局). 1.LoggersLoggers组件在此系统中被分为五个级别:DEBU ...
随机推荐
- iOS 之 退出app(项目)的几种方法
路漫漫其修远兮,吾将上下而求索.也算是对程序员的一种真实写照了吧. 今天想研究一下iOS中退出项目的方法,说是今天,其实也关注并去了解很久了.只是始终找不到自己认为很好的方法.今天就先把自己了解的列举 ...
- 在php中使用strace、gdb、tcpdump调试工具
[转] http://www.syyong.com/php/Using-strace-GDB-and-tcpdump-debugging-tools-in-PHP.html 在php中我们最常使用调试 ...
- XSL学习笔记4 XSLT模式匹配的语法
模板规则通过使用模式来匹配文档树的节点.模式指定一组条件,用于选择要处理的节点. 模式匹配的语法不光可以在<xsl:template>元素的match属性中使用,还可以在<xsl ...
- Cucumber(一): Preparation
Every time I wrote some code in ruby and executed our cucumber features I craved for something simil ...
- 栈的JS实现
栈,是一种特殊的线性表,其插入及删除的操作都在线性表的同一端进行.这一端称为栈顶,另一端称为栈底.就类似于餐厅里的一摞盘子,后放的盘子在上方,也会先被人拿走.栈具有"后进先出"的逻 ...
- Axure的学习
这两天开始学习Axure,首先做的是下载Axure的7.0版本,然后汉化,可以百度找.不过我在开始学习时也遇到一些问题.在开始添加元件库时还是很顺利的,不过在我发布的时候,我发现了一些问题.发布一开始 ...
- 使用Jmeter录制web脚本
1:启动Jmeter: 2:选择测试计划,右键->添加->Threads(users)>线程组 3:选择这个线程组,右键->添加->配置元件->HTTP请求默认值, ...
- ubuntu vps 安装 jdk
Introduction Java is a programming technology originally developed by Sun Microsystems and later acq ...
- 关于dev无法更新、调试的问题
- java基础3_循环语句,数组
java中的循环: Java中提供了3中循环结构: while do-while for ① 循环结构的作用? 可以不断重复执行循环结构中的代码: ② 上面的3个循环结构功能都是一样的,只是结构 ...