一个LOG4J的例子,不知道有帮忙没?
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.ResourceBundle;import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.PatternLayout;
import org.apache.log4j.RollingFileAppender;public class LogBase {
private static String PROPERTIES_FILE = "log4j"; private static String LOG_PATH; private static String DATE_LOG_FOLDER; private static String LOG_LEVEL; private static String PATTERN_LAYOUT; private static long MAX_FILE_SIZE; private LogBase() {
} public static Logger getLogInstance(String name) {
Logger logger = Logger.getLogger(name);
try {
String pattern = getPatternLayout();
RollingFileAppender appender = new RollingFileAppender(
new PatternLayout(pattern), createClassLogFile(name)
.getAbsolutePath());
long maxfilesize = getMaxFileSize();
appender.setMaximumFileSize(maxfilesize);
logger.addAppender(appender);
String level = getLogLevel();
logger.setLevel((Level) Level.toLevel(level));
} catch (Exception e) {
e.printStackTrace();
} return logger;
} /*
* 在LOG_PATH下?建以当天日期?名字的文件?
*/
private static File createDateLogFolder() {
LOG_PATH = getLogPath();
if (LOG_PATH == null) {
readLogConfigParams();
}
DATE_LOG_FOLDER = LOG_PATH + System.getProperty("file.separator")+"system"; File logFolder = new File(DATE_LOG_FOLDER);
try {
if (!logFolder.exists()) {
logFolder.mkdirs();
}
} catch (Exception ex) {
ex.printStackTrace();
} return logFolder;
} private static File createClassLogFile(String classname) {
if (DATE_LOG_FOLDER == null) {
createDateLogFolder();
} String classnameString = DATE_LOG_FOLDER
+ System.getProperty("file.separator")+ getCurrentDate()+ classname + ".txt";
File logFile = new File(classnameString);
try {
if (!logFile.exists()) {
logFile.createNewFile();
}
} catch (Exception ex) {
ex.printStackTrace();
}
return logFile;
} private static void readLogConfigParams() {
ResourceBundle rb = ResourceBundle.getBundle(PROPERTIES_FILE);
LOG_PATH = rb.getString("LOG_PATH");
LOG_LEVEL = rb.getString("LOG_LEVEL");
PATTERN_LAYOUT = rb.getString("PATTERN_LAYOUT");
MAX_FILE_SIZE = Long.parseLong(rb.getString("MAX_FILE_SIZE"));
} private static String getLogPath() {
return LOG_PATH;
} private static String getCurrentDate() {
SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd");
return df.format(new Date());
} private static String getLogLevel() {
if (LOG_LEVEL == null) {
readLogConfigParams();
}
return LOG_LEVEL;
} private static String getPatternLayout() {
if (PATTERN_LAYOUT == null) {
readLogConfigParams();
}
return PATTERN_LAYOUT;
} private static long getMaxFileSize() {
if (!(MAX_FILE_SIZE > 0)) {
readLogConfigParams();
}
return MAX_FILE_SIZE;
}
}
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.ResourceBundle;import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.PatternLayout;
import org.apache.log4j.RollingFileAppender;public class LogBase {
private static String PROPERTIES_FILE = "log4j"; private static String LOG_PATH; private static String DATE_LOG_FOLDER; private static String LOG_LEVEL; private static String PATTERN_LAYOUT; private static long MAX_FILE_SIZE; private LogBase() {
} public static Logger getLogInstance(String name) {
Logger logger = Logger.getLogger(name);
try {
String pattern = getPatternLayout();
RollingFileAppender appender = new RollingFileAppender(
new PatternLayout(pattern), createClassLogFile(name)
.getAbsolutePath());
long maxfilesize = getMaxFileSize();
appender.setMaximumFileSize(maxfilesize);
logger.addAppender(appender);
String level = getLogLevel();
logger.setLevel((Level) Level.toLevel(level));
} catch (Exception e) {
e.printStackTrace();
} return logger;
} /*
* 在LOG_PATH下?建以当天日期?名字的文件?
*/
private static File createDateLogFolder() {
LOG_PATH = getLogPath();
if (LOG_PATH == null) {
readLogConfigParams();
}
DATE_LOG_FOLDER = LOG_PATH + System.getProperty("file.separator")+"system"; File logFolder = new File(DATE_LOG_FOLDER);
try {
if (!logFolder.exists()) {
logFolder.mkdirs();
}
} catch (Exception ex) {
ex.printStackTrace();
} return logFolder;
} private static File createClassLogFile(String classname) {
if (DATE_LOG_FOLDER == null) {
createDateLogFolder();
} String classnameString = DATE_LOG_FOLDER
+ System.getProperty("file.separator")+ getCurrentDate()+ classname + ".txt";
File logFile = new File(classnameString);
try {
if (!logFile.exists()) {
logFile.createNewFile();
}
} catch (Exception ex) {
ex.printStackTrace();
}
return logFile;
} private static void readLogConfigParams() {
ResourceBundle rb = ResourceBundle.getBundle(PROPERTIES_FILE);
LOG_PATH = rb.getString("LOG_PATH");
LOG_LEVEL = rb.getString("LOG_LEVEL");
PATTERN_LAYOUT = rb.getString("PATTERN_LAYOUT");
MAX_FILE_SIZE = Long.parseLong(rb.getString("MAX_FILE_SIZE"));
} private static String getLogPath() {
return LOG_PATH;
} private static String getCurrentDate() {
SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd");
return df.format(new Date());
} private static String getLogLevel() {
if (LOG_LEVEL == null) {
readLogConfigParams();
}
return LOG_LEVEL;
} private static String getPatternLayout() {
if (PATTERN_LAYOUT == null) {
readLogConfigParams();
}
return PATTERN_LAYOUT;
} private static long getMaxFileSize() {
if (!(MAX_FILE_SIZE > 0)) {
readLogConfigParams();
}
return MAX_FILE_SIZE;
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货