[原]简单的写日志公共类

引用命名空间:
using System.IO;


    
public class WriteLog
ExpandedBlockStart.gifContractedBlock.gif    
{
        
public static readonly WriteLog WriteLogInstance = new WriteLog();
        
public void Init(string filePath)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
{
            Init(filePath,
string.Empty,0);
        }

        
public void Init(string filePath,int maxSize_KB)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
{
            Init(filePath, 
string.Empty, maxSize_KB);
        }

        
public void Init(string filePath,string fileName,int maxSize_KB)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
{
            _logFilePath 
= filePath;
            _logFileName 
= fileName;
            _logMaxSize 
= maxSize_KB;
        }


        
private string _logFilePath;
        
public string LogFilePath
ExpandedSubBlockStart.gifContractedSubBlock.gif        
{
            
get 
ExpandedSubBlockStart.gifContractedSubBlock.gif            
{
                 WriteLogInstance._logFilePath 
= string.IsNullOrEmpty(WriteLogInstance._logFilePath) ? 
                    AppDomain.CurrentDomain.SetupInformation.ApplicationBase 
+ System.IO.Path.DirectorySeparatorChar : WriteLogInstance._logFilePath;
                
return WriteLogInstance._logFilePath;
            }

ExpandedSubBlockStart.gifContractedSubBlock.gif            
set { WriteLogInstance._logFilePath = value; }
        }


        
private string _logFileName;
        
public string LogFileName
ExpandedSubBlockStart.gifContractedSubBlock.gif        
{
            
get 
ExpandedSubBlockStart.gifContractedSubBlock.gif            
{
                WriteLogInstance._logFileName 
= string.IsNullOrEmpty(WriteLogInstance._logFileName) ? "Applog.log" : WriteLogInstance._logFileName;
                
return WriteLogInstance._logFileName; 
            }

ExpandedSubBlockStart.gifContractedSubBlock.gif            
set { WriteLogInstance._logFileName = value; }
        }


        
private int _logMaxSize;
ExpandedSubBlockStart.gifContractedSubBlock.gif        
/**//// <summary>
        
/// 日志文件大小,单位KB
        
/// 最大为5*1024KB,默认为1024KB。
        
/// </summary>

        public int LogMaxSize
ExpandedSubBlockStart.gifContractedSubBlock.gif        
{
            
get 
ExpandedSubBlockStart.gifContractedSubBlock.gif            
{
                WriteLogInstance._logMaxSize 
= (WriteLogInstance._logMaxSize <= 0 || WriteLogInstance._logMaxSize > 5120? 1024 : WriteLogInstance._logMaxSize;
                
return WriteLogInstance._logMaxSize; 
            }

ExpandedSubBlockStart.gifContractedSubBlock.gif            
set { WriteLogInstance._logMaxSize = value; }
        }



        
private object _objLock = new object();
        
public void WriteToLog(string[] content)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
{
            
lock (_objLock)
ExpandedSubBlockStart.gifContractedSubBlock.gif            
{
                
string folder = LogFilePath;
                
string logFile = LogFileName;
                
string filePath = folder + logFile;
                
if (!Directory.Exists(folder))
                    Directory.CreateDirectory(folder);

                System.IO.FileInfo info 
= new System.IO.FileInfo(filePath);

                
if (info.Exists)
ExpandedSubBlockStart.gifContractedSubBlock.gif                
{
                    
int maxSize = LogMaxSize*1024;//转换为字节

                    
if (info.Length > maxSize)
ExpandedSubBlockStart.gifContractedSubBlock.gif                    
{
                        
string bkPath = DateTime.Now.ToString("yyyyMMddHHmmss"+ "_" + logFile;
                        System.IO.File.Move(filePath, folder 
+ bkPath);
                    }

                }


                System.IO.StreamWriter writer 
= new System.IO.StreamWriter(filePath, true,System.Text.Encoding.UTF8);
                
foreach (string line in content)
ExpandedSubBlockStart.gifContractedSubBlock.gif                
{
                    writer.WriteLine(line);
                }

                writer.Close();
            }

        }


        
public void WriteToLog(string message)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
{
ExpandedSubBlockStart.gifContractedSubBlock.gif            
string[] messages = new string[1{ message};
            WriteToLog(messages);
        }

        
public void WriteErrorInfo(string funcName, string message)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
{
            
//写入本地log中。
            List<string> messageList = new List<string>();
            messageList.Add(
"--------------------------------------");
            messageList.Add(System.DateTime.Now.ToString());
            messageList.Add(funcName);
            messageList.Add(message);
            WriteLogInstance.WriteToLog(messageList.ToArray());
        }

    }

 使用时:
首先可以:WriteLog.WriteLogInstance.Init(...);

然后:向日志中写信息,WriteLog.WriteLogInstance.WriteToLog(message);
或向日志中写异常信息:WriteLog.WriteLogInstance.WriteErrorInfo(...);

转载于:https://www.cnblogs.com/xinyuxin912/archive/2009/04/03/1428747.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值