使用java实现日志工具类分享

代码如下:

package com.teligen.eos.teleCode;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Date;

/**
 * 书写日志信息到指定的文件中
 */
public class WriteLogUtil {

private static String rootPath = "D:\\logs\\";

/**
  * 将信息写到文件中
  * @param msg
  */
 public static void writeMsgToFile(String msg) {
  //删除之前的文件
  delOldFile();

FileWriter fileWriter = null;
  try {
   fileWriter = new FileWriter(getFileName(),true);
   Date today = new Date();
   String time = String.valueOf(today.getHours()) + ":" + String.valueOf(today.getMinutes()) + " " + String.valueOf(today.getSeconds());
   fileWriter.write("#" + time + "# [" + msg + "]" + "\r\n");
   fileWriter.flush();
  } catch (IOException e) {
   System.out.println("### 写日志到文件异常 ### >>> " + e.getMessage());
   e.printStackTrace();
  } finally {
   try {
    fileWriter.close();
   } catch (IOException e) {
    System.out.println("### 关闭写日志的流异常 ### >>> " + e.getMessage());
    e.printStackTrace();
   }
  }
 }

/**
  * 删除之前的日志文件
  */
 private static void delOldFile() {
  Date today = new Date();
  int month = today.getMonth()+1;
  month = month - 2;
  if(month == -1) month = 11;
  if(month == 0) month = 12;
  String delPath = rootPath + String.valueOf(month) + "\\";
  File folder = new File(delPath);
  if(folder.exists()) {
   File[] files = folder.listFiles();
   for(int i=0; i<files.length; i++) {
    files[i].delete();
   }
  }
 }

/**
  * 获取要保存的文件
  * @return fileName
  */
 private static String getFileName() {
  Date today = new Date();
  String fileName = String.valueOf((today.getYear()+1900)) + String.valueOf((today.getMonth()+1)) + String.valueOf(today.getDate()) + ".log";

//创建目录
  File folder = new File(rootPath + String.valueOf((today.getMonth()+1)) + "\\");
  if(!folder.exists()) {
   folder.mkdirs();
  }
  //创建文件
  File file = new File(fileName);
  if(!file.exists()) {
   try {
    file.createNewFile();
   } catch (IOException e) {
    System.out.println("### 新建日志文件异常 ### >>> " + e.getMessage());
    e.printStackTrace();
   }
  }

fileName = rootPath + String.valueOf((today.getMonth()+1)) + "\\" + fileName;

return fileName;
 }

/**
  * 测试使用的main方法
  */
 public static void main(String[] args) {
  //getFileName();
  String testString = "写日志咯:71FABB7890D2CC0D267FBD84F409618C0303BC597B9244C324947BDE4B1C0B4CB08C33FC461F7BADD088535DAE42D8D7D06F4134E442D9D1CE3A0F9B3EDD64337A2D18CE34FCDC137B7CBD84F409618C03038FEAEC79F79C2F58BD84F409618C03038FEAEC79F79C2F58BD84F409618C03038FEAEC79F79C2F581790ACB3C178641D14D8C09905BC52CF1C8249B12F2EDE5AC3C8FAF2FD8A686E";
  writeMsgToFile(testString);
  //delOldFile();
 }
}

(0)

相关推荐

  • Log4j定时打印日志及添加模块名配置的Java代码实例

    配置间隔时间,定时打印日志  接到个需求,通过log4j定时打印日志,需求描述如下:需要能够定时打印日志,时间间隔可配.说到定时,首先想到了DailyRollingFileAppender类,各种定时,根据datePattern,这个可以参考类SimpleDateFormat类,常见的一些定时设置如下: '.'yyyy-MM: 每月 '.'yyyy-ww: 每周 '.'yyyy-MM-dd: 每天 '.'yyyy-MM-dd-a: 每天两次 '.'yyyy-MM-dd-HH: 每小时 '.'yy

  • java读取用户登入退出日志信息上传服务端

    本文实例为大家分享了读取用户登入出日志并上传服务端的具体实现代码,供大家参考,具体内容如下 该客户端运行在给用户提供unix服务的服务器上.用来读取并收集该服务器上用户的上下线信息,并进行配对整理后发送给服务端汇总. 具体实现代码: 1. DMSServer.java package com.dms; import java.io.BufferedReader; import java.io.File; import java.io.FileOutputStream; import java.i

  • Java中重定向输出流实现用文件记录程序日志

    System中的out,error都是final类型的,不能做改动.但通过setOut()可以设置新的输出流,从而实现写日志的功能. import java.io.PrintStream; import java.io.FileNotFoundException; public class RedirectOutputStream { public static void main(String arg[]){ try{ PrintStream out = System.out; //保留原输出

  • java自定义日志输出文件(log4j日志文件输出多个自定义日志文件)

    log4j输出多个自定义日志文件 如果在实际应用中需要输出独立的日志文件,怎样才能把所需的内容从原有日志中分离,形成单独的日志文件呢? 先看一个常见的log4j.properties文件,它是在控制台和test.log文件中记录日志: 复制代码 代码如下: log4j.rootLogger=DEBUG, stdout, logfile log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layo

  • 自己写的java日志类和方法代码分享

    复制代码 代码如下: import java.io.*;import java.text.SimpleDateFormat;import java.util.*;import java.util.logging.Logger; public class AndyLogger{    //The defaulted root path of SSLVPN installation     private static String rootPath = "C:\\temp2"; //va

  • 自己写的简易版Java日志类分享

    /** * */ import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; /** * @author magic282 * */ public class Logger { private static String logFilePath; private static boolean

  • java使用动态代理来实现AOP(日志记录)的实例代码

    下面是一个AOP实现的简单例子: 首先定义一些业务方法: 复制代码 代码如下: /** * Created with IntelliJ IDEA. * Author: wangjie  email:tiantian.china.2@gmail.com * Date: 13-9-23 * Time: 下午3:49 */public interface BussinessService {    public String login(String username, String password

  • Java 调整格式日志输出

    工欲善其事,必先利其器 很多程序员可能都忘了记录应用程序的行为是一件多么重要的事,当遇到多线程环境下高压力导致的并发bug时,你就能体会到记录log的重要性. 有的人很高兴的就在代码里加上了这么句: log.info("Happy and carefree logging"); 他可能都没有意识到应用程序的日志在维护,调优和故障识别中的重要性.我认为slf4j是最好的日志API,最主要是因为它支持一个很棒的模式注入的方式: log.debug("Found {} record

  • Java日志软件Log4j的基本使用教程

    1.概述 1.1背景 在我们的日常开发中,日志记录非常重要.在应用程序中添加日志记录总的来说基于三个目的:监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析工作:跟踪代码运行时轨迹,作为日后审计的依据:担当集成开发环境中的调试器的作用,向文件或控制台打印代码的调试信息. 1.2简介 Log4j(log for java)是Apache的一个开放源代码项目,它提供了一种细腻的日志管理方式.通过一个配置文件,我们可以多选择的控制每条日志的输出格式和目的地.通过定义信息的级别,我们也

  • 使用java实现日志工具类分享

    复制代码 代码如下: package com.teligen.eos.teleCode; import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.util.Date; /** * 书写日志信息到指定的文件中 */public class WriteLogUtil { private static String rootPath = "D:\\logs\\"; /**  *

  • java文件读写工具类分享

    本文实例为大家分享了java文件读写工具类的具体代码,供大家参考,具体内容如下 import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileReader; import java.io.FileWriter;

  • Java使用excel工具类导出对象功能示例

    本文实例讲述了Java使用excel工具类导出对象功能.分享给大家供大家参考,具体如下: package com.gcloud.common; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.xssf.streaming.SXSSFSheet; import

  • Java日期操作方法工具类实例【包含日期比较大小,相加减,判断,验证,获取年份等】

    本文实例讲述了Java日期操作方法工具类.分享给大家供大家参考,具体如下: package com.gcloud.common; import org.apache.http.util.TextUtils; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.regex.Patte

  • Java日期处理工具类DateUtils详解

    本文实例为大家分享了Java日期处理工具类DateUtils的具体代码,供大家参考,具体内容如下 import java.sql.Timestamp; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * <日期时间处理工具类> */ public class DateUtils { /** * Dat

  • 常用java正则表达式的工具类

    本文实例为大家分享了java正则表达式工具类的具体代码,供大家参考,具体内容如下 import com.google.common.base.Strings; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * 常用的正则表达式 * Created by tookbra on 2016/4/7. */ public class RegexUtils { /** * 判断是否是正确的IP地址 * * @para

  • Java实现Http工具类的封装操作示例

    本文实例讲述了Java实现Http工具类的封装操作.分享给大家供大家参考,具体如下: http工具类的实现:(通过apache包)第一个类 import java.io.IOException; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.HttpStatus; import org.apache.http.client.ClientProtocolE

  • Java压缩解压缩工具类

    本文实例为大家分享了Java压缩解压缩工具类的具体代码,供大家参考,具体内容如下 package com.wdy.tools.utils.pressuitl; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import

  • java文件处理工具类详解

    本文实例为大家分享了java文件处理工具类的具体代码,供大家参考,具体内容如下 import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream;

  • Java操作XML工具类XmlUtil详解

    本文实例为大家分享了Java操作XML工具类的具体代码,供大家参考,具体内容如下 一.代码 public class XmlUtil { /** * 将XML文件输出到指定的路径 * * @param doc * @param fileName * @throws Exception */ public static void outputXml(Document doc, String fileName) throws Exception { TransformerFactory tf = T

随机推荐