本文目錄一覽:
java log打印的日誌會在控制台輸出嗎
會的啊
編寫log4j.properties文件,配置日誌信息
### 把日誌信息輸出到控制台 ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender//日誌信息將寫到控制台
log4j.appender.stdout.Target=System.out//信息打印到System.out上
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %m%n//指定輸出格式:顯示日期和log信息
### 把日誌信息輸出到文件:accp.log ###
log4j.appender.file=org.apache.log4j.FileAppender//日誌信息將寫到文件中
log4j.appender.file.File=accp.log//指定日誌輸出的文件名
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %l %m%n//指定輸出格式:顯示日期,日誌發生位置和日誌信息
### 設置優先級別、以及輸出源 ###
log4j.rootLogger=debug, stdout, file//設置優先級別為debug、
日誌被輸出到多個輸出源
註:優先級從高到低分別是ERROR、WARN、INFO、DEBUG
在此處,如果優先級別設為info,那麼使用debug方法打印的日誌信息將不被輸出
java 創建一個log日誌
這是以前在網上看到關於處理log日誌的一段代碼,一起學習吧。
至於存到數據庫,那就得再打開log日誌找到所需要的信息做操作了。
import java.util.logging.*;
import java.io.*;
public class MemoryHandlerTest {
FileHandler fhandler;
Logger logger;
MemoryHandler mhandler;
MemoryHandlerTest() {
try {
fhandler = new FileHandler(“my.log”);
int numRec = 5;
mhandler = new MemoryHandler(fhandler, numRec, Level.OFF);
logger = Logger.getLogger(“com.mycompany”);
logger.addHandler(mhandler);
} catch (IOException e) {
}
}
public static void main(String args[]) {
MemoryHandlerTest mt = new MemoryHandlerTest();
int trigger = (int) (Math.random() * 100);
for (int i = 1; i 100; i++) {
mt.logger.log(Level.INFO, “日誌記錄” + i);
if (i == trigger) {
mt.mhandler.push();
break;
}
}
}
}
java log日誌的問題
首先,配置成每天生成的話,.log文件的路徑是不會改變的,比如,日誌文件是log.log,那麼這個文件在第二天會被備份為2013-01-07.log,但是同時會再生成一個log.log文件,所以不會影響你的路徑
其次,如果這個日誌文件一直被系統在添加日誌的話,那麼該文件應該是被加鎖的,其他程序只能讀不能修改和刪除,所以如果該情況下你一定要隔幾天清空一次,一是修改生成日誌的系統,讓其定時清除日誌文件內容,二是寫腳本或程序,先停掉系統,再清空日誌,然後重啟系統。這種方法,不建議採用。
強烈建議,採用第一種方法,然後修改你的讀取日誌的程序,每天讀取一下前一天生成的日誌文件內容就可以了,因為備份文件是用日期命名的,利用這個規律,很容易就可以獲取到要讀取的文件名了
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/259504.html