« Grails ということで | メイン | ひさびさに回ってみると »

ColdFusion で自前 log4j ログをはき出す

cfscript でコードを書いていると、ログ出したいなぁという時があるけど、cflog タグは当然使えない。
まあ、ログじゃなくても、いろんな方法があるわけだけど、ささっと変数状態を見たいときがある。
というわけで、やってみた。

<cfscript>
 variables.LoggerClass = CreateObject("java", "org.apache.log4j.Logger");
 variables.logger = variables.LoggerClass.getLogger("cflog4jlogger");
 
 variables.appender = variables.logger.getAppender("custom");
 if (!IsDefined("variables.appender")) {
 
  // PatternLayout
  variables.layout = CreateObject("java", "org.apache.log4j.PatternLayout");
  variables.layout.setConversionPattern("""%-5p"",""%t"",%d{""MMM/dd/yy"",""HH:mm:ss""},""#Application.ApplicationName#"",""%m""%n");

  // Appenderインスタンスの生成
  variables.appender = CreateObject("java", "org.apache.log4j.RollingFileAppender");
  variables.appender.setName("custom");
  variables.appender.setFile("#server.coldfusion.rootdir#/logs/log4jlog.log");
  variables.appender.setLayout(variables.layout);
  variables.logger.addAppender(variables.appender);
  variables.appender.activateOptions();
  
 }
 variables.file = variables.appender.getFile();
 variables.LevelClass = CreateObject("java", "org.apache.log4j.Level");
 variables.logger.setLevel(LevelClass.INFO);
</cfscript>

<cfscript>
 ...
 logger.error("書き出す内容");
 ...
</cfscript>

という感じで、できた。
無駄もあるかもしれないし、間違っているかもしれないけど、とりあえずは、はき出せる。

ColdFusion の lib フォルダにある logger.xml に書けば、行けそうな気がしないわけでもない。

トラックバック

このエントリーのトラックバックURL:
http://www.schwarzmond.info/mt/mt-tb.cgi/109

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

About

2009年03月05日 12:24に投稿されたエントリーのページです。

ひとつ前の投稿は「Grails ということで」です。

次の投稿は「ひさびさに回ってみると」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。