spring 配置log4j

<!--如果不定义webAppRootKey参数,那么webAppRootKey就是缺省的"webapp.root"-->
<context-param>
  <param-name>webAppRootKey</param-name>
  <param-value>ssh.root</param-value>
</context-param>

这里的ssh是http://localhost:8080/ssh/

而root是系统开发目录中ssh/root

这样配置文件以及日志文件可以在spring的帮助下,放到开发环境中的任意位置

<!--由Sprng载入的Log4j配置文件位置-->
<context-param>
  <param-name>log4jConfigLocation</param-name>
  <param-value>/WEB-INF/log4j.properties</param-value>
</context-param>

在这里定位配置文件,需要的是从root开始的绝对路径

<!--Spring默认刷新Log4j配置文件的间隔,单位为millisecond-->
<context-param>
  <param-name>log4jRefreshInterval</param-name>
  <param-value>60000</param-value>
</context-param>

<!--Spring log4j Config loader-->
<listener>
  <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>

设置监听器



/////////////////
之后我们就可以配置log4j配置文件了

#先设置级别
log4j.rootCategory=INFO, file
log4j.appender.file=org.apache.log4j.RollingFileAppender
#在这里设置日志需要存放的位置,这里的变量就是我们在web.xml里设置的
log4j.appender.file.File=${ssh.root}/WEB-INF/logs/subject.log
log4j.appender.file.MaxFileSize=100KB
log4j.appender.file.MaxBackupIndex=0
log4j.appender.file.layout=org.apache.log4j.SimpleLayout
log4j.appender.file.layout.ConversionPattern=[ssh] %p %t %c - %m%n

有了上面的配置,我们就可以查看日志了!


最后在程序中想要输出log的地方加入log4j的支持

  (1)引入 import org.apache.log4j.Logger

  (2)声明一个logger

  private static Logger logger = Logger.getLogger(ClassName.class);

  (3)在程序中的相应位置加入输出信息

  logger.info("用户登录:"+user.getAccount());

  ok,完成了,当有登录时会在控制台和文件中同时输出log信息如下

  2007-01-10 16:02:54 [com.my.web.UserAction]-[INFO] 用户登录:yangsq

  附注(转):

  以下是配置文件(log4j.properties)的一些重要的语法

  定义配置文件

  其实您也可以完全不使用配置文件,而是在代码中配置Log4j环境。但是,使用配置文件将使您的应用程序更加灵活。

  Log4j支持两种配置文件格式,一种是XML格式的文件,一种是Java特性文件(键=值)。下面我们介绍使用Java特性文件做为配置文件的方法:

  配置根Logger,其语法为:

  log4j.rootLogger = [ level ] , appenderName, appenderName, …

  其中,level 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。

  appenderName就是指定日志信息输出到哪个地方。您可以同时指定多个输出目的地。

  配置日志信息输出目的地Appender,其语法为

  log4j.appender.appenderName = fully.qualified.name.of.appender.class   log4j.appender.appenderName.option1 = value1   …   log4j.appender.appenderName.option = valueN

  其中,Log4j提供的appender有以下几种:

  org.apache.log4j.ConsoleAppender(控制台),

  org.apache.log4j.FileAppender(文件),

  org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),

  org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

  配置日志信息的格式(布局),其语法为:
log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class   log4j.appender.appenderName.layout.option1 = value1     log4j.appender.appenderName.layout.option = valueN



  其中,Log4j提供的layout有以下几种:

  org.apache.log4j.HTMLLayout(以HTML表格形式布局),

  org.apache.log4j.PatternLayout(可以灵活地指定布局模式),

  org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),

  org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

你可能感兴趣的:(apache,spring,Web,log4j,ssh)