102 lines
3.2 KiB
Java
Executable File
102 lines
3.2 KiB
Java
Executable File
/**
|
|
* Copyright 2018-2028 Akaxin Group
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
package com.windchat.common.logs;
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.log4j.DailyRollingFileAppender;
|
|
import org.apache.log4j.FileAppender;
|
|
import org.apache.log4j.Logger;
|
|
import org.apache.log4j.PatternLayout;
|
|
import org.apache.log4j.RollingFileAppender;
|
|
|
|
/**
|
|
* @author Sam{@link an.guoyue254@gmail.com}
|
|
* @since 2018-01-31 12:31:53
|
|
*/
|
|
public class LogCreater {
|
|
|
|
// 默认当前目录下
|
|
public static Logger createLogger(String logName) {
|
|
return createLogger(logName, null, new PatternLayout(), false, false);
|
|
}
|
|
|
|
// 指定目录logPath下
|
|
public static Logger createLogger(String logName, String logPath) {
|
|
return createLogger(logName, logPath, new PatternLayout(), false, false);
|
|
}
|
|
|
|
// 当前目录下每天创建一个日志
|
|
public static Logger createTimeLogger(String logName) {
|
|
return createLogger(logName, null, new PatternLayout("[%p] %d [%c] \r\n\t%m%n"), false, true);
|
|
}
|
|
|
|
// 指定目录下每天创建一个日志
|
|
public static Logger createTimeLogger(String logName, String logPath) {
|
|
return createLogger(logName, logPath, new PatternLayout("[%p] %d [%c] \r\n\t%m%n"), false, true);
|
|
}
|
|
|
|
/**
|
|
*
|
|
* @param logName
|
|
* log文件名称
|
|
* @param logPath
|
|
* log路径
|
|
* @param layout
|
|
* log布局
|
|
* @param additivity
|
|
* 子类appender是否集成父类appender
|
|
* @param isDailyMode
|
|
* 是否按天来记录
|
|
* @return
|
|
*/
|
|
public static Logger createLogger(String logName, String logPath, PatternLayout layout, boolean additivity,
|
|
boolean isDailyMode) {
|
|
Logger createdLogger = Logger.getLogger(logName);
|
|
try {
|
|
String logFileName = null;
|
|
if (StringUtils.isEmpty(logPath)) {
|
|
logFileName = logName + ".log";
|
|
} else if (logPath.endsWith("/")) {
|
|
logFileName = logPath + logName + ".log";
|
|
} else {
|
|
logFileName = logPath + "/" + logName + ".log";
|
|
}
|
|
|
|
FileAppender fileAppender = null;
|
|
if (isDailyMode) {
|
|
fileAppender = new DailyRollingFileAppender(layout, logFileName, "'.'yyyy-MM-dd");
|
|
} else {
|
|
fileAppender = new RollingFileAppender(layout, logFileName, true);
|
|
RollingFileAppender rollingAppender = (RollingFileAppender) fileAppender;
|
|
rollingAppender.setMaxFileSize("200MB");
|
|
rollingAppender.setMaxBackupIndex(5);
|
|
}
|
|
// do not need bufferedIO
|
|
// fileAppender.setBufferedIO(true);
|
|
// fileAppender.setBufferSize(8192);
|
|
|
|
createdLogger = Logger.getLogger(logName);
|
|
createdLogger.removeAllAppenders();
|
|
createdLogger.setAdditivity(additivity);
|
|
createdLogger.addAppender(fileAppender);
|
|
} catch (Exception e) {
|
|
throw new RuntimeException("create logger error", e);
|
|
}
|
|
return createdLogger;
|
|
}
|
|
|
|
}
|