方法一:利用JDK的自带java.util.Logger类的方法,其对应的logging.properties位于jre/lib目录下
public class LogUtil {
/**
* 得到要记录的日志的路径及文件名称
* @return
*/
private static String getLogName() {
StringBuffer logPath = new StringBuffer();
logPath.append(System.getProperty("user.dir"));//当前目录
File file = new File(logPath.toString());
if (!file.exists())
file.mkdir();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
logPath.append("\\"+sdf.format(new Date())+".log");
return logPath.toString();
}
/**
* 配置Logger对象输出日志文件路径
* @param logger
* @throws SecurityException
* @throws IOException
*/
public static void setLogingProperties(Logger logger) throws SecurityException, IOException {
setLogingProperties(logger,Level.ALL);
}
/**
* 配置Logger对象输出日志文件路径
* @param logger
* @param level 在日志文件中输出level级别以上的信息
* @throws SecurityException
* @throws IOException
*/
public static void setLogingProperties(Logger logger,Level level) {
FileHandler fh;
try {
fh = new FileHandler(getLogName(),true);
logger.addHandler(fh);//日志输出文件
//logger.setLevel(level);
fh.setFormatter(new SimpleFormatter());//文本方式 XMLFormatter
//logger.addHandler(new ConsoleHandler());//输出到控制台
} catch (SecurityException e) {
logger.log(Level.SEVERE, "安全性错误", e);
} catch (IOException e) {
logger.log(Level.SEVERE,"读取文件日志错误", e);
}
}
public static void main(String [] args) {
//为指定子系统查找或创建一个 logger
Logger logger = Logger.getLogger("zwxu");
//System.out.println(getLogName());
try{
LogUtil.setLogingProperties(logger);
int a=5/0;
}
catch(Exception e){
logger.log(Level.INFO,"error" ,e);
}
}
}
方法二:使用log4j工具
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
public class LogUtil2 {
public static final Logger log = Logger.getLogger(LogUtil2.class);
//public static final Logger log = LoggerFactory.getLogger(LogUtil2.class);配合slf4j使用
public static void main(String [] args) {
String path=System.getProperty("user.dir");
path+="\\src\\";
System.out.println(path);
PropertyConfigurator.configure(path+"log4j.properties");
try{
int a=5/0;
}
catch(Exception e){
log.info("error", e);
}
}
}