返回顶部
首页 > 资讯 > 精选 >使用java如何实现异步将日志写到文件中
  • 425
分享到

使用java如何实现异步将日志写到文件中

java异步日志 2023-05-31 15:05:32 425人浏览 薄情痞子
摘要

本篇文章给大家分享的是有关使用java如何实现异步将日志写到文件中,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。java异步写日志到文件中详解实现代码:package com.

本篇文章给大家分享的是有关使用java如何实现异步将日志写到文件中,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

java异步写日志到文件中详解

实现代码:

package com.tydic.ESUtil;  import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; import java.util.Properties;  public class LogWriter { // 日志的配置文件   public static final String LOG_CONFIGFILE_NAME = "log.properties";   // 日志文件名在配置文件中的标签   public static final String LOGFILE_TAG_NAME = "logfile";      // 默认的日志文件的路径和文件名称   private final String DEFAULT_LOG_FILE_NAME = "./logtext.log";   // 该类的唯一的实例   private static LogWriter logWriter;   // 文件输出流   private PrintWriter writer;    // 日志文件名   private String logFileName;       private LogWriter() throws LogException{     this.init();   }   private LogWriter(String fileName) throws LogException{     this.logFileName = fileName;     this.init();   }      public synchronized static LogWriter getLogWriter()throws LogException{     if (logWriter == null){       logWriter = new LogWriter();     }     return logWriter;   }   public synchronized static LogWriter getLogWriter(String logFileName)throws LogException{     if (logWriter == null){       logWriter = new LogWriter(logFileName);     }     return logWriter;   }       public synchronized void log(String logMsg) {     this.writer.println(new java.util.Date() + ": " + logMsg);   }      public synchronized void log(Exception ex) {     writer.println(new java.util.Date() + ": ");     ex.printStackTrace(writer);   }       private void init() throws LogException{     //如果用户没有在参数中指定日志文件名,则从配置文件中获取。     if (this.logFileName == null){       this.logFileName = this.getLogFileNameFromConfigFile();       //如果配置文件不存在或者也没有指定日志文件名,则用默认的日志文件名。       if (this.logFileName == null){         this.logFileName = DEFAULT_LOG_FILE_NAME;       }     }     File logFile = new File(this.logFileName);     try {       // 其中的FileWriter()中的第二个参数的含义是:是否在文件中追加内容       // PrintWriter()中的第二个参数的含义是:自动将数据flush到文件中       writer = new PrintWriter(new FileWriter(logFile, true), true);       System.out.println("日志文件的位置:" + logFile.getAbsolutePath());     } catch (IOException ex) {       String errmsg = "无法打开日志文件:" + logFile.getAbsolutePath();       // System.out.println(errmsg);       throw new LogException(errmsg, ex);     }   }      private String getLogFileNameFromConfigFile() {      try {        Properties pro = new Properties();        //在类的当前位置,查找属性配置文件log.properties        InputStream fin = getClass().getResourceAsStream(LOG_CONFIGFILE_NAME);        if (fin != null){         pro.load(fin);//载入配置文件         fin.close();          return pro.getProperty(LOGFILE_TAG_NAME);       } else {         System.err.println("无法打开属性配置文件: log.properties" );        }     }catch (IOException ex) {        System.err.println("无法打开属性配置文件: log.properties" );      }     return null;   }   //关闭LogWriter   public void close() {     logWriter = null;     if (writer != null){       writer.close();     }   }    public static void main(String[] args) {     LogWriter logger = null;     try {       String fileName = "d:/temp/logger.log";       logger = LogWriter.getLogWriter(fileName); //     logger.log("First log!"); //     logger.log("第二个日志信息"); //     logger.log("Third log"); //     logger.log("第四个日志信息");       String content="tableaA|device_number|13701010";       StringBuffer sb=new StringBuffer();       for(int i=0;i<1000000;i++){         sb.append(content).append(i).append(";\n");       }       content=sb.toString();       long startTime=System.currentTimeMillis();       logger.log(content);       long endTime=System.currentTimeMillis();       System.out.println("总消耗时间:"+(endTime-startTime));       logger.close(); //     ReadFromFile.readFileByLines(fileName);     } catch (LogException e) {       e.printStackTrace();     }   } } 

--结束END--

本文标题: 使用java如何实现异步将日志写到文件中

本文链接: https://lsjlt.com/news/226736.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 使用java如何实现异步将日志写到文件中
    本篇文章给大家分享的是有关使用java如何实现异步将日志写到文件中,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。java异步写日志到文件中详解实现代码:package com....
    99+
    2023-05-31
    java 异步 日志
  • 如何使用Log4j、ActiveMQ和Spring实现异步日志
    这篇文章主要介绍“如何使用Log4j、ActiveMQ和Spring实现异步日志”,在日常操作中,相信很多人在如何使用Log4j、ActiveMQ和Spring实现异步日志问题上存在疑惑,小编查阅了各式资料...
    99+
    2024-04-02
  • 如何用PHP同步日志文件?
    日志文件是应用程序开发和维护中非常重要的一部分,它可以帮助我们记录应用程序的运行状态、错误日志和调试信息。然而,随着应用程序的不断发展和数据量的增长,日志文件的大小也会越来越大,这给日志文件的同步和备份带来了很多挑战。本文将介绍如何使用P...
    99+
    2023-07-09
    日志 文件 同步
  • 如何使用PHP自动同步日志文件?
    PHP是一种非常流行的服务器端脚本语言,它可以轻松地处理许多日常任务。在本文中,我们将介绍如何使用PHP自动同步日志文件。 什么是日志文件? 在计算机科学中,日志文件是一个记录系统或应用程序运行时事件的文件。这些事件可以包括错误、警告、信息...
    99+
    2023-07-09
    日志 文件 同步
  • 如何使用PHP同步多个日志文件?
    PHP 是一种广泛使用的编程语言,它可以用于开发各种不同类型的应用程序。其中,日志文件对于开发人员来说是至关重要的一部分,因为它可以帮助我们追踪应用程序的行为和问题。当我们需要同步多个日志文件时,PHP 提供了一些非常有用的函数和类。在本文...
    99+
    2023-07-09
    日志 文件 同步
  • maven如何使用slf4j输出日志到文件
    目录使用slf4j输出日志到文件log4j.propertiesslf4j将部分日志打印在其他文件中logback.xml配置中新增一个FileAppender在需要额外打印日志的地...
    99+
    2024-04-02
  • 如何使用shell将脚本输出结果记录到日志文件
    这篇文章将为大家详细讲解有关如何使用shell将脚本输出结果记录到日志文件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。使用tee命令:sh portal/main.sh |tee log.txt获取脚本...
    99+
    2023-06-09
  • @Slf4j 如何实现日志输入到外部文件
    目录@Slf4j实现日志输入到外部文件1. 添加一个配置文件直接在代码中使用@Slf4j日志文件打印和输出文件首先配置lombok添加一个配置文件方法中的使用@Slf4j实现日志输入...
    99+
    2024-04-02
  • 如何使用Html5实现异步上传文件
    本篇内容主要讲解“如何使用Html5实现异步上传文件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用Html5实现异步上传文件”吧! 服务器准备IIS ...
    99+
    2024-04-02
  • 如何使用 Golang 实现异步文件上传?
    如何用 go 实现异步文件上传?使用 http.multipartfile 处理文件上传,它支持并发上传。创建一个 goroutine 来异步上传文件,不会阻塞主线程。使用 io.cop...
    99+
    2024-05-13
    golang 异步文件上传 git
  • 如何在Windows操作系统中使用Java编写文件日志程序?
    在Windows操作系统中,Java是一种非常流行的编程语言,它不仅可以用于开发各种类型的应用程序,还可以用于编写文件日志程序。在本文中,我们将介绍如何在Windows操作系统中使用Java编写文件日志程序。 一、什么是文件日志程序 文件日...
    99+
    2023-09-24
    windows 文件 日志
  • 学习 Python 异步编程时,如何将日志记录集成到笔记中?
    Python 是一种非常流行的编程语言,因为它易于学习、易于阅读,并且可以用于多种用途。异步编程是 Python 中的一个重要概念,它可以让你的代码更加高效和响应迅速。在学习 Python 异步编程的过程中,日志记录也是非常重要的一部分。本...
    99+
    2023-11-07
    学习笔记 异步编程 日志
  • Git中如何记录Java异步编程的日志?
    Git是一款强大的版本控制工具,而Java异步编程是现代开发中不可或缺的一部分。因此,如何在Git中记录Java异步编程的日志是一个非常重要的问题。在本文中,我们将会介绍如何使用Git来记录Java异步编程的日志,并提供一些示例代码以帮助您...
    99+
    2023-10-11
    git 异步编程 日志
  • 如何在Java中使用Ajax异步上传文件
    今天就跟大家聊聊有关如何在Java中使用Ajax异步上传文件,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。html代码片段:   <form&nb...
    99+
    2023-06-15
  • 如何使用Java和NumPy处理日志文件?
    随着互联网的发展,日志文件已经成为了我们生活和工作中不可或缺的一部分。无论是系统日志、应用程序日志还是网站访问日志,我们都需要对它们进行分析和处理,以便更好地理解系统性能、用户行为和其他相关信息。在本文中,我们将介绍如何使用Java和Num...
    99+
    2023-10-09
    numpy 日志 npm
  • Java中如何实现异步调用
    Java中如何实现异步调用,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。@Test一、创建线程public void test0() throws...
    99+
    2023-06-02
  • JS中如何实现异步文件上传
    这篇文章将为大家详细讲解有关JS中如何实现异步文件上传,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在非html5的情况下是无法用ajax把文件推送到后端的,只能通过fo...
    99+
    2024-04-02
  • html中如何实现异步上传文件
    这篇文章将为大家详细讲解有关html中如何实现异步上传文件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。   代码如下:   <formaction="...
    99+
    2024-04-02
  • java如何实现写文件
    这篇文章给大家分享的是有关java如何实现写文件的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。import java.io.*;// Class Writefilepublic class Writefile{p...
    99+
    2023-06-03
  • 使用Java如何监控并输出日志文件
    使用Java如何监控并输出日志文件?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。代码1:日志产生类package com.bill99.seashell.domain.svr;...
    99+
    2023-05-31
    java ava
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作