自己寫的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";
//variable for creating new line
private final static String enter = System.getProperty("line.separator");
private static SimpleDateFormat sdf =
new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
public static synchronized void log(String fileName, String logMessage)
{
try
{
File folder = new File(rootPath);
if(!folder.exists())
{
folder.mkdir();
}
File file = new File(rootPath + "\\" + fileName + ".log");
if(!file.exists())
{
file.createNewFile();
}
BufferedReader in = new BufferedReader(new FileReader(file));
String str = "";
String strToal = "";
while ((str = in.readLine()) != null)
{
strToal += (str + enter);
}
strToal = strToal + (sdf.format(new Date()) + " " + logMessage + enter);
in.close();
BufferedWriter out = new BufferedWriter(new FileWriter(file));
out.write(strToal);
out.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
public static synchronized void log(String fileName, String[] logMessages)
{
try
{
File folder = new File(rootPath);
if(!folder.exists())
{
folder.mkdir();
}
File file = new File(rootPath + "\\" + fileName + ".log");
if(!file.exists())
{
file.createNewFile();
}
BufferedReader in = new BufferedReader(new FileReader(file));
String str = "";
String strToal = "";
while ((str = in.readLine()) != null)
{
strToal += (str + enter);
}
for (int i=0; i < logMessages.length ; i++)
{
String logMessage = logMessages[i];
strToal = strToal + (sdf.format(new Date()) + " " + logMessage + enter);
}
in.close();
BufferedWriter out = new BufferedWriter(new FileWriter(file));
out.write(strToal);
out.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
public static void main(String args[])
{
AndyLogger.log("bug223", "timeisjjja");
String[] logMessages = {"111","222","333"};
AndyLogger.log("bug223", logMessages);
}
}
相關(guān)文章
Java編程之jdk1.4,jdk1.5和jdk1.6的區(qū)別分析(經(jīng)典)
這篇文章主要介紹了Java編程之jdk1.4,jdk1.5和jdk1.6的區(qū)別分析,結(jié)合實(shí)例形式較為詳細(xì)的分析說明了jdk1.4,jdk1.5和jdk1.6版本的使用區(qū)別,需要的朋友可以參考下2015-12-12SpringBoot+Mybatis實(shí)現(xiàn)Mapper接口與Sql綁定幾種姿勢(shì)
通常我們?cè)谑褂肕ybatis進(jìn)行開發(fā)時(shí),會(huì)選擇xml文件來寫對(duì)應(yīng)的sql,然后將Mapper接口與sql的xml文件建立綁定關(guān)系,然后在項(xiàng)目中調(diào)用mapper接口就可以執(zhí)行對(duì)應(yīng)的sql,感興趣的可以學(xué)習(xí)一下2021-09-09java開發(fā)分布式服務(wù)框架Dubbo服務(wù)引用過程詳解
這篇文章主要為大家介紹了java開發(fā)分布式服務(wù)框架Dubbo服務(wù)引用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2021-11-11java代碼實(shí)現(xiàn)斗地主發(fā)牌功能
這篇文章主要介紹了java實(shí)現(xiàn)斗地主發(fā)牌功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-11-11Spring中的@RestControllerAdvice注解使用解析
這篇文章主要介紹了Spring中的@RestControllerAdvice注解使用解析,@RestControllerAdvice?是?Spring?框架中一個(gè)用于統(tǒng)一處理控制器異常和返回結(jié)果的注解,它可以被用來定義全局異常處理程序和全局響應(yīng)結(jié)果處理程序,需要的朋友可以參考下2024-01-01java中struts2實(shí)現(xiàn)文件上傳下載功能實(shí)例解析
這篇文章主要介紹了java中struts2實(shí)現(xiàn)文件上傳下載功能的方法,以實(shí)例形式較為詳細(xì)的分析了struts2實(shí)現(xiàn)文件上傳下載功能的具體實(shí)現(xiàn)技巧與相關(guān)問題的解決方法,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2015-01-01