Logger日志打印普通方法

using System;
using System.IO;
using System.Text;

namespace Core
{
    public class LogHelper
    {
        private static void writeLog(string log)
        {

            string strFilePath = AppDomain.CurrentDomain.BaseDirectory + "logs\\log.txt";
            string strDirPath = Path.GetDirectoryName(strFilePath);
            if (!Directory.Exists(strDirPath))//Directory.Exists(dirPath)目录的路径
                Directory.CreateDirectory(strDirPath);//Directory.CreateDirectory(path)创建目录
            strFilePath = Path.Combine(strDirPath, "log" + string.Format("{0:yyyyMMdd}", DateTime.Now) + ".txt");//Path.Combine(strpath1,strpath2)
            if (!File.Exists(strFilePath))//File.Exists(path),指定路径的文件是否存在
            {
                //FileStream fsCreate = File.Create(strFilePath);//创建路径
                FileStream fsCreate = new FileStream(strFilePath, FileMode.OpenOrCreate, FileAccess.ReadWrite);
                fsCreate.Close();
            }
            FileStream fs = new FileStream(strFilePath, FileMode.Append,FileAccess.Write);//任何读取操作都会报异常
            StreamWriter sw = new StreamWriter(fs, Encoding.Default);
            sw.WriteLine("--------------------------------------------");
            sw.WriteLine("Timestamp: "+DateTime.Now.ToString());
            sw.WriteLine("Message: " + log);
            sw.WriteLine("--------------------------------------------");
            sw.Close();
            fs.Close();
        }
        //打印普通信息
        public static void WriteInfo(string objectName, string info)
        {

            writeLog(objectName + ":" + info);

        }

        public static void WriteInfo(string objectName, string info, int lines)
        {
            string strlines = "";
            for (int i = 0; i < lines; i++)
            {
                strlines += "\r\n";
            }
            writeLog(objectName+":"+info);
            //writeLog(strlines + DateTime.Now.ToString() + " INFO " + objectName + " " + info);
        }
        //打印错误信息
        public static void WriteError(string objectName, string error)
        {
            writeLog(objectName+":"+error);
            //writeLog(DateTime.Now.ToString() + " ERROR " + objectName + " " + error);
        }

        public static void WriteError(string objectName, string error, int lines)
        {
            string strlines = "";
            for (int i = 0; i < lines; i++)
            {
                strlines += "\r\n";
            }
            writeLog(objectName + ":" + error);
            //writeLog(strlines + DateTime.Now.ToString() + " ERROR " + objectName + " " + error);
        }

    }
}
时间: 2024-10-18 16:57:37

Logger日志打印普通方法的相关文章

【java】java自带的java.util.logging.Logger日志功能

偶然翻阅到一篇文章,注意到Java自带的Logger日志功能,特地来细细的看一看,记录一下. 1.Java自带的日志功能,默认的配置 ①Logger的默认配置,位置在JRE安装目录下lib中的logging.properties中 ②logging.properties日志文件内容如下: ############################################################ # Default Logging Configuration File # # You

Log日志打印集合类型

看到Logger可以打印json,当时就想能不能打印集合呢,现在通过学习了一些反射的东西,写了出来,仅供参考. public static <E> void list(List<E> list) { if (IS_DDEBUG) { if (list == null || list.size() == 0) { Logger.d("list为空"); } else { Field[] allFields = null; StringBuilder builder

Python 日志打印模块

1 logging模块简介 logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级.日志保存路径.日志文件回滚等:相比print,具备如下优点: 可以通过设置不同的日志等级,在release版本中只输出重要信息,而不必显示大量的调试信息: print将所有信息都输出到标准输出中,严重影响开发者从标准输出中查看其它数据:logging则可以由开发者决定将信息输出到什么地方,以及怎么输出: 2 logging模块使用 2.1 基本使用 配置logging基本的设

Java项目中如何使用log4j和slf4j实现日志打印

什么是log4j? Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI组件,甚至是套接口服务器.NT的事件记录器.UNIX Syslog守护进程等:我们也可以控制每一条日志的输出格式:通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程.最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码. 什么是slf4j? SLF4J,即简单日志门面(Simple Logging Facade fo

SpringBoot 整合 slf4j 日志打印

划水时间,记录一下用到的相关slf4j 日志打印,如何实现配置输出.本地保存log日志文件... 我使用的是SpringBoot框架,slf4j 类库已经包含到了 SpringBoot 框架中,所有,所有前提是“你的SpringBoot项目能够启动起来” /手动滑稽... 第一步:在 application.properties 文件中先定义好logger文件的一些配置信息,这样方便以后修改配置: ###################### log 配置 ###################

java中日志打印

目录 一.预先判断日志级别 二.避免无效日志打印 三.区别对待错误日志 四.保证记录完整内容 打印日志,要注意下面4点. 一.预先判断日志级别 对DEBUG.INFO级别的日志,必须使用条件输出或者使用占位符的方式打印.该约定综合考虑了程序的运行效率和日志打印需求. 先来看一个反例: log.debug("输入参数信息id=" + id + ",obj=" + obj); 如果在某个配置了打印级别为WARN的应用中,按照上面代码打印DEBUG级别的日志,那么该日志不

python日志打印和写入并发简易版本实现

大家一般都用logging日志打印,但logging是线程安全的,多进程也有很多介绍,引入一些文件锁,对logging做好配置,能过支持. 但通过测试,发现多进程时还是容易出现重复写入文件或者打印正常漏写入文件的问题. 我的日志需求比较简单,能够区分文件,正确的写入日志文件. 引入文件锁:日志写入函数封装到一个操作_Logger类中: 日志名称和写入级别封装到一个业务类Logger中. 本范例基于python3实现.本范例20个进程并发,分别写入3个文件,每s每个文件写入超过100行数据,日志文

项目log日志打印

①使用到的jar包: 大概是这几个,具体我也不知道是哪一个,下次使用的时候自己测试下. commons-logging-1.2.jar commons-discovery-0.5.jar log4j-1.2.17.jar ②log4j.properties log4j.rootLogger=DEBUG,CONSOLE,A log4j.addivity.org.apache=false log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender

iOS开发- 日志打印(常见)

Q:如何打印当前的函数和行号? A:我们可以在打印时使用一些预编译宏作为打印参数,来打印当前的函数和行号.如: NSLog(@"%s:%d obj=%@", __func__, __LINE__, obj); NSLog(@"%s:%d obj=%@", __func__, __LINE__, self); //输出样式: //2015-01-06 17:13:17.852 justTest[15079:613] // -[ViewController viewDi