日志log2
public class LoggerHelper2 { private static ConcurrentQueue<string> CqMsg = null; private static string logFilePath = @"D:\log\" + DateTime.Now.ToString("yyyy-MM-dd") + ".txt"; static LoggerHelper2() { CqMsg = new ConcurrentQueue<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() { Task.Run(() => { while (true) { string tmsg = string.Empty; ) { CqMsg.TryDequeue(out tmsg); } if (!String.IsNullOrEmpty(tmsg)) { WriteLog(tmsg); } ) { Thread.Sleep(); } } }); } public static void WriteLogAsync(string strlog) { CqMsg.Enqueue(strlog); } public static void WriteLogAsync(string filepath, string strlog) { if (string.IsNullOrEmpty(filepath)) { WriteLogAsync(strlog); } else { logFilePath = filepath; CqMsg.Enqueue(strlog); } } }
使用
Parallel.For(, , index => { string msg1 = "test" + index.ToString(); LoggerHelper2.WriteLogAsync(msg1); });
日志log2的更多相关文章
- 自己编写的 C++ 超轻量级日志类
[自己编写的 C++ 超轻量级日志类(兼容vc++6.0.vs2010.vs2015)] 先来看效果: [测试文件:test.cpp] /* 作者:闫文山 时间:2017/07/02 介绍: 本日志类 ...
- logging 文件日志
1. 例子 import logging logging.basicConfig(filename='log.txt', #文件名 level=logging.DEBUG, #级别 format=u' ...
- InnoDB源码分析--事务日志(二)
原创文章,转载请标明原文链接:http://www.cnblogs.com/wingsless/p/5708992.html 昨天写了有关事务日志的一些基本点(http://www.cnblogs.c ...
- 以HTML为表现的日志记录组件
日志搬家:http://www.loogn.net/blog/Article.aspx?id=21 关于日志记录,如果你不想随用随写,又不想用log4net的话,也许你可以了解一下这个! 我也是个很懒 ...
- 日志挖掘Logmnr
日志挖掘 9.1 日志中数据用途 所有对用户数据以及数据字典的改变全部被保存在联机日志中.当然nologging,insert/*+append+/情况比较特殊除外,因此归档日志可以用来做数据库的恢复 ...
- log4net基本日志使用笔记[windows application]
Ref: http://www.cnblogs.com/wangsaiming/archive/2013/01/11/2856253.html http://www.cnblogs.com/zhouf ...
- BIND9详解之日志篇
在默认情况下,BIND把日志消息写到/var/log/messages文件中,而这些日志消息是非常少的,主要就是启动,关闭的日志记录和一些严重错误的消息,所以要详细记录服务器的运行状况,需要自己配置服 ...
- 最小日志量的insert操作
--1.实验环境 SQL> conn scott/tiger Connected to Oracle Database 11g Enterprise Edition Release 11.2.0 ...
- 基于java.util.logging实现轻量级日志记录库(增加根据当前类class初始化,修复线程池模型(javaEE)下的堆栈轨迹顺序与当前调用方法不一致问题)
前言: 本章介绍自己写的基于java.util.logging的轻量级日志记录库(baseLog). 该版本的日志记录库犹如其名,baseLog,是个实现日志记录基本功能的小库,适合小型项目使用,方便 ...
随机推荐
- Vue - 过滤器
1.内部过滤器 1):字母操作: ---- 针对字符串 A:capitalize B:uppercase C:lowercase 2):json过ingfy滤器,可将表达式的值转化为Json字符串,本 ...
- 使用极光/友盟推送,APP进程杀死后为什么收不到推送(转)
为什么会存在这样的 问题,刚开始的时候我也搞不清楚,之前用极光的时候杀死程序后也会收到推送,但最近重新再去集成时就完全不好使了,这我就纳闷了,虽然Google在高版本上的android上面不建议线程守 ...
- 最大流-最小割 MAXFLOW-MINCUT ISAP
简单的叙述就不必了. 对于一个图,我们要找最大流,对于基于增广路径的算法,首先必须要建立反向边. 反向边的正确性: 我努力查找了许多资料,都没有找到理论上关于反向边正确性的证明. 但事实上,我们不难理 ...
- 【原】iOS学习之NSDate在项目中的一些类目扩展
在项目中,我们可能会面对各种各样的对于时间的需求,在这里提供几种可能会用到的需求代码 1.与今天的时间做比较,返回日期差值 代码: - (NSInteger)compareWithToday { NS ...
- 2015 ACM/ICPC EC-Final
A. Boxes and Balls 二分找到最大的不超过$n$的$\frac{x(x+1)}{2}$形式的数即可. #include <bits/stdc++.h> using name ...
- GDB调试汇编堆栈
GDB调试汇编堆栈 分析过程 C语言源代码 int g(int x) { return x+6; } int f(int x) { return g(x+1); } int main(void) { ...
- topcoder SRM 628 DIV2 BracketExpressions
先用dfs搜索所有的情况,然后判断每种情况是不是括号匹配 #include <vector> #include <string> #include <list> # ...
- DataTable转换为JSON数组
最后的格式为:[{},{},...] StringBuilder DataTableToJSON(DataTable dt) { string columnName; StringBuilder bu ...
- 【BZOJ】4001: [TJOI2015]概率论
题意 求节点数为\(n\)的有根树期望的叶子结点数.(\(n \le 10^9\)) 分析 神题就打表找规律.. 题解 方案数就是卡特兰数,$h_0=1, h_n = \sum_{i=0}^{n-1} ...
- ubuntu 16.04 安装完QQ后,更新或apt-get报错
apt-get install python-pip正在读取软件包列表... 完成正在分析软件包的依赖关系树 正在读取状态信息... 完成 您可能需要运行“apt-get -f install”来纠正 ...