log 4 j構成、ログパス構成


##           (                 )、     
##CONSOLE、STDOUT           ,      log4j 5   
log4j.rootLogger = ERROR, C, W, E

###      
log4j.appender.C = org.apache.log4j.ConsoleAppender
log4j.appender.C.layout = org.apache.log4j.PatternLayout
log4j.appender.C.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [%l]:%m%n

###       
log4j.appender.W = org.apache.log4j.DailyRollingFileAppender
log4j.appender.W.File = ${webApp.root}/logs/log.log
log4j.appender.W.Append = true
##  WARN       
log4j.appender.W.Threshold = WARN
log4j.appender.W.layout = org.apache.log4j.PatternLayout
log4j.appender.W.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [%l]:%m%n

###           
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
##       
log4j.appender.E.File = ${webApp.root}/logs/error.log
log4j.appender.E.Append = true
##   ERROR       
log4j.appender.E.Threshold = ERROR
##            
log4j.appender.E.layout = org.apache.log4j.PatternLayout
##      、    (%l:     、     ,         )、         、   
log4j.appender.E.layout.ConversionPattern =%-d{yyyy-MM-dd HH\:mm\:ss}  [%l]\:%m%n
 
log 4 jをロードする.propertiesプロファイルはwebで必要です.xmlでは、次のような情報を構成します.
<context-param>
	<param-name>log4jConfigLocation</param-name>
	<param-value>classpath:log4j.properties</param-value>
</context-param>
<context-param>
	<param-name>log4jRefreshInterval</param-name>
	<param-value>60000</param-value>
</context-param>
 
Fileファイルのパス構成方法:
1.絶対パスを使用して、D:/logs/logのような固定位置にログファイルを配置する.log.
2.使用環境変数:
A:${user.home}、例えば${user.home}/logs/log.logはログファイルを個人ユーザーディレクトリの下に置くことで、システムの異なる位置に違いがある可能性があります.私のコンピュータシステム(win 10)と個人構成を例にとると、${user.home}/logs/log.logはC:Userskzhzhanglogslog.logを表します.
B:${catalina.home}例えば${catalina.home}/webapps/SM/logs/error.logはtomcatの第1層ディレクトリの下にログファイルを置き、${catalina.home}/webapps/SM/logs/error.logはtomcatの下にパブリッシュされたプロジェクトの内部にログファイルを配置するために構成されています.
C:${webApp.root}例えば${webApp.root}/logs/error.logはtomcatの下に公開されたプロジェクトの内部にログファイルを配置し、Bの例の効果と同じである.この変数を使用するにはwebが必要です.xmlでは、以下のように構成されています.
<context-param>  
     <param-name>webAppRootKey</param-name>  
     <param-value>webApp.root</param-value>  
</context-param>
<listener>
      <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
 
Springはorgを通過する.springframework.web.util.WebAppRootListenerというListenerは、実行時のプロジェクトパスをリスニングします.WebAppRootKeyパラメータを定義しない場合、WebAppRootKeyの値はデフォルトで「webappp.root」になります.
3.リスナー実装サーブレットContextListenerを設定し、プロジェクトの開始時にログ保存ディレクトリを初期化する:
package www.tongmap.cn.utils;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

public class Log4jListener implements ServletContextListener{
 public static final String log4jDir = "log4jdir";  
 @Override
 public void contextInitialized(ServletContextEvent sce) {
  String log4jdir = sce.getServletContext().getRealPath("/") + "logs\\";
     System.setProperty(log4jDir, log4jdir); 
 }

 @Override
 public void contextDestroyed(ServletContextEvent sce) {
  System.getProperties().remove(log4jDir);
 }

}
 
 
log 4 j.propertiesファイルではlog 4 dir(変数名は任意に命名でき、一貫性を保つことに注意)変数構成ログファイルの場所、例えば${log 4 jdir}/log.logを使用し、またweb.xmlでリスナーを構成する必要があります.構成は以下の通りです.
<listener>  
     <listener-class>www.tongmap.cn.utils.Log4jListener</listener-class>  
</listener>
 
ConversionPatternパラメータのフォーマットの意味
フォーマット名の意味
%c出力ログ情報が属するクラスのフルネーム
%dはログの時点の日付または時刻を出力します.デフォルトのフォーマットはISO 8601です.その後、%d{yy-MM-dd HH:mm:ss}などのフォーマットを指定することもできます.出力は2002-10-18-22:10:28と似ています.
%f出力ログ情報が属するクラスのクラス名
%l出力ログイベントの発生場所、すなわち出力ログ情報の文がそのクラスの数行目にある
%m出力コードで指定した情報、例えばlog(message)のmessage
%nは折り返し改行を出力し、Windowsプラットフォームは「rn」、Unixプラットフォームは「n」
%p出力優先度、すなわちDEBUG,INFO,WARN,ERROR,FATAL.Debug()出力を呼び出す場合は、DEBUGとなります.
%rは、アプリケーションがログ情報を出力するために起動したミリ秒数から出力される
%t出力ログイベントを生成するスレッド名