Skip to content

Instantly share code, notes, and snippets.

@ZoeyYoung
Last active August 29, 2015 14:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ZoeyYoung/2b752f0871d1afd9a496 to your computer and use it in GitHub Desktop.
Save ZoeyYoung/2b752f0871d1afd9a496 to your computer and use it in GitHub Desktop.
动态创建logger,例如根据不同的ID创建不同的Log文件
import java.io.File;
import java.io.IOException;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.PatternLayout;
import org.apache.log4j.RollingFileAppender;
public final class LogUtils {
private static String loggerDir = "D:/files/log";
private static String encoding = "UTF-8";
private static int bufferSize = 8 * 1024;
private LogUtils() {}
/**
* 取得Logger对象.
*
* @param name 文件名
* @return 返回Logger对象
* @throws IOException IOException
* @throws FileNotFoundException FileNotFoundException
*/
public static Logger getLogger(final String name) {
Logger logger = Logger.getLogger(name);
logger.removeAllAppenders();
logger.setAdditivity(false);
logger.setLevel(Level.DEBUG);
PatternLayout layout = new PatternLayout();
layout.setConversionPattern("%d{yyyy-MM-dd HH:mm:ss} [ %p ] : %m%n");
RollingFileAppender appender;
try {
appender = new RollingFileAppender();
appender.setLayout(layout);
// Encoding must set before set file.
appender.setEncoding(encoding);
appender.setFile(loggerDir + File.separator + name + ".log", true, true, bufferSize);
appender.setMaxFileSize("1MB");
appender.setMaxBackupIndex(1);
logger.addAppender(appender);
} catch (IOException e) {
e.printStackTrace();
}
return logger;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment