自定义log日志

 

 

Log.cs

using System;
using System.Collections.Generic;
using System.Web;
using System.IO;

namespace PC.Common
{
    public class Log
    {
        //在网站根目录下创建日志目录
        public static string path = HttpContext.Current.Request.PhysicalApplicationPath + "logs";

        /**
         * 向日志文件写入调试信息
         * @param className 类名
         * @param content 写入内容
         */
        public static void Debug(string className, string content)
        {
            if(LogLevel.LOG_LEVENL >= 3)
            {
                WriteLog("DEBUG", className, content);
            }
        }

        /**
        * 向日志文件写入运行时信息
        * @param className 类名
        * @param content 写入内容
        */
        public static void Info(string className, string content)
        {
            if (LogLevel.LOG_LEVENL >= 2)
            {
                WriteLog("INFO", className, content);
            }
        }

        /**
        * 向日志文件写入出错信息
        * @param className 类名
        * @param content 写入内容
        */
        public static void Error(string className, string content)
        {
            if (LogLevel.LOG_LEVENL >= 1)
            {
                WriteLog("ERROR", className, content);
            }
        }

        /**
        * 实际的写日志操作
        * @param type 日志记录类型
        * @param className 类名
        * @param content 写入内容
        */
        protected static void WriteLog(string type, string className, string content)
        {
            if(!Directory.Exists(path))//如果日志目录不存在就创建
            {
                Directory.CreateDirectory(path);
            }

            string time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff");//获取当前系统时间
            string filename = path + "/" + DateTime.Now.ToString("yyyy-MM-dd") + ".log";//用日期对日志文件命名

            //创建或打开日志文件,向日志文件末尾追加记录
            StreamWriter mySw = File.AppendText(filename); 

            //向日志文件写入内容
            string write_content = time + " " + type + " " + className + ": " + content;
            mySw.WriteLine(write_content);

            //关闭日志文件
            mySw.Close();
        }
    }
}

 

 

LogLevel.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace PC.Common
{
    public class LogLevel
    {
        public static string AppKey(string key)
        {
            return System.Configuration.ConfigurationManager.AppSettings[key];
        }

        /// <summary>
        /// 日志等级,0.不输出日志;1.只输出错误信息; 2.输出错误和正常信息; 3.输出错误信息、正常信息和调试信息
        /// </summary>

        public static int LOG_LEVENL
        {
            get
            {
                string log_levenl = "0";
                if (AppKey("log_leven") != "")
                {
                    log_levenl = AppKey("log_leven");
                }
                return Convert.ToInt32(log_levenl);
            }
        }
    }
}

 

web.config

 

 

调用方式

Log.Debug(this.GetType().ToString(), "json : " + json);

 

时间: 2024-10-01 02:18:43

自定义log日志的相关文章

自定义log日志输出到文件中保存

程序调试日志,可以 通过printf直接输出到屏幕上面进行调试.在默写特定的情况下面,可以将日志保存到文件中,后期进行查阅调试. log.h //log.h #ifndef _ITCAST_LOG_H_ #define _ITCAST_LOG_H_ /* #define IC_NO_LOG_LEVEL 0 #define IC_DEBUG_LEVEL 1 #define IC_INFO_LEVEL 2 #define IC_WARNING_LEVEL 3 #define IC_ERROR_LEV

(Unity)Unity自定义Debug日志文件,利用VS生成Dll文件并使用Dotfuscated进展混淆,避免被反编译

Unity自定义Debug日志文件,利用VS生成Dll文件并使用Dotfuscated进行混淆,避免被反编译. 1.打开VS,博主所用版本是Visual Studio 2013. 2.新建一个VC项目,选择类库,取名为JefferyChan,具体步骤如下图: 3.因为要调用Unity中的相关文件,所以这里要引入外部文件.首先在Unity的安装文件夹中找到UnityEngine.dll,我的路径是:D:\Program Files (x86)\Unity\Editor\Data\Managed 如

简单的php自定义错误日志

平时经常看php的错误日志,很少有机会去自己动手写日志,看了王健的<最佳日志实践>觉得写一个清晰明了,结构分明的日志还是非常有必要的. 在写日志前,我们问问自己:为什么我们有时要记录自定义的日志呢?而不用系统默认的日志记录方式呢? 我认为有两个原因: 1.团队需要一个统一格式的日志方便管理 2.大量无用错误日志占据硬盘空间,仅需记录有意义的日志. 那么,实践一下. 1.打开你的php.ini 2.打开日志记录,将 log_errors = Off 改成 log_errors = On 3.将p

Discuz!自定义积分日志

转: http://www.mutoulee.cn/113.html http://www.xuephp.com/main/detail.php?cid=23045 Discuz!自定义积分日志 在有些项目中可能会遇到积分相关操作,同时需要将自己的积分操作加入积分日志,整理了一下. 核心函数: PHP 1 updatemembercount($_G['uid'], array($credit => -dintval($_GET['num'])), true, 'WDA', 1, '积分提现');

捕获异常、存sd卡、封装请求头体、加密map值、网络工具类、生成Json、Https协议、传log日志到服务器、app崩溃友好重启

点击打开链接,免积分下载 在集成了统计SDK(友盟统计,百度统计等)之后,有一个非常有利于测试的功能:错误分析!此功能能够将程序在运行中碰到的崩溃(runtimeException)问题反馈到服务器,帮助开发者改善产品,多适配机器.然而在公司android开发中不集成这些SDK,那应该怎么实现这样的功能呢?下面让我们来看下如何使用UncaughtExceptionHandler来捕获异常. 在Android开发中,常常会出现uncheched Exception 导致程序的crash,为了提供良

自定义tornado日志格式

本文和大家分享的主要是tornado日志格式自定义相关内容,一起来看看吧,希望对大家学习python有所帮助. 第一次玩tornado.版本4.x.为了解决日志格式的问题,google了很多,没一个有效的. tornado日志格式分两块,一块是logging的格式,一块是tornado请求消息格式. tornado默认的访问日志输出是这样的: WARNING:tornado.access:404 GET / (127.0.0.1) 167.93ms 其中, WARNING:tornado.acc

lumen 自定义错误日志文件

自定义错误日志文件,改造新的方法 <?php namespace App; use Monolog\Logger; use Monolog\Handler\StreamHandler; use Monolog\Formatter\LineFormatter; class LogLib { //define static log instance. protected static $_log_instance; /** * 获取log实例 * * @return obj * @author Sp

第四十二篇、自定义Log打印

在开发的过程中,打印调试日志是一项比不可少的工程,但是在iOS 10中NSLog打印日志被屏蔽了,就不得不使用自定义Log #ifdef DEBUG #define LRString [NSString stringWithFormat:@"%s",__FILE__].lastPathComponent #define LRLog(...) NSLog(@"%@ 第%d行 \n%@\n\n",LRString,__LINE__,[NSString stringWit

iOS调试技巧之打印输出 -----A: (NSString *)description B:自定义LOG C:使用第三方插件快速打印

A:重写- (NSString *)description函数 如果有一个Product 产品对象  Product.h中 1 #import <Foundation/Foundation.h> 2 3 typedef enum : NSUInteger { 4 RED = 1, 5 GREEN, 6 } ProductColor; 7 8 @interface Product : NSObject 9 10 @property (nonatomic, assign) ProductColor