java Logger 的使用
1.导入log4j-1.2.16.jar夹包
2.在工程目录的src下复制log4j.properties的文件
文件内容如下:
### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
### direct messages to file hibernate.log ###
#log4j.appender.file=org.apache.log4j.FileAppender
#log4j.appender.file.File=hibernate.log
#log4j.appender.file.layout=org.apache.log4j.PatternLayout
#log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
### set log levels - for more verbose logging change 'info' to 'debug' ###
log4j.rootLogger=info,CONSOLE,FILE
#log4j.logger.org.hibernate=info
log4j.logger.org.hibernate=debug
### log HQL query parser activity
#log4j.logger.org.hibernate.hql.ast.AST=debug
### log just the SQL
#log4j.logger.org.hibernate.SQL=debug
### log JDBC bind parameters ###
log4j.logger.org.hibernate.type=info
#log4j.logger.org.hibernate.type=debug
### log schema export/update ###
log4j.logger.org.hibernate.tool.hbm2ddl=debug
log4j.addivity.org.apache=true
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.Threshold=ERROR
log4j.appender.CONSOLE.Target=System.out
#log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout=org.apache.log4j.SimpleLayout
#log4j.appender.CONSOLE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
#log4j.appender.CONSOLE.layout.ConversionPattern=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD] n%c[CATEGORY]%n%m[MESSAGE]%n%n
log4j.appender.FILE=org.apache.log4j.DailyRollingFileAppender
log4j.appender.FILE.File=D\:/hooypay/log4j/file.log
log4j.appender.FILE.Append=true
log4j.appender.FILE.DatePattern='.'yyyy-MM-dd'.log'
#log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout=org.apache.log4j.SimpleLayout
### log HQL parse trees
#log4j.logger.org.hibernate.hql=debug
### log cache activity ###
#log4j.logger.org.hibernate.cache=debug
### log transaction activity
#log4j.logger.org.hibernate.transaction=debug
### log JDBC resource acquisition
#log4j.logger.org.hibernate.jdbc=debug
### enable the following line if you want to track down connection ###
### leakages when using DriverManagerConnectionProvider ###
#log4j.logger.org.hibernate.connection.DriverManagerConnectionProvider=trace
3.写一个LoggerUtil类
public class LoggerUtil { /** 存放的文件夹 **/ private static String file_name = "好易意见反馈日志"; /** * 得到要记录的日志的路径及文件名称 * @return */ private static String getLogName() { StringBuffer logPath = new StringBuffer(); logPath.append(System.getProperty("user.home")); logPath.append("\\"+file_name); 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());//输出格式 //logger.addHandler(new ConsoleHandler());//输出到控制台 } catch (SecurityException e) { logger.log(Level.SEVERE, "安全性错误", e); } catch (IOException e) { logger.log(Level.SEVERE,"读取文件日志错误", e); } }
4.在action中引用
import java.io.IOException; import java.util.logging.Level; import java.util.logging.Logger; import com.hooypay.util.LoggerUtil; public class GetServiceInfoAction { private String name; private String address; private String email; private String phone; private String title; private String content; public String getServiceInfo(){ Logger logger = Logger.getLogger("log.text"); try { LoggerUtil.setLogingProperties(logger); logger.log(Level.INFO, "名字:"+name+","+"地址:"+address+","+"邮箱:"+email+","+"电话:"+phone+","+"标题:"+title+","+"内容:"+content); } catch (SecurityException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } // List list =new ArrayList(); // list.add(name); // list.add(address); // list.add(email); // list.add(phone); // list.add(title); // list.add(content); // list.add(df.format(d)); return "success"; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } public static void main(String[] args) { GetServiceInfoAction g= new GetServiceInfoAction(); g.getServiceInfo(); } }
这样就ok了