使用log4j在Mondrian中输出日志
最近在帮女朋友做毕设,一个基于Mondrian的小项目。写完聚合表后竟然查询速度还是很慢,遂决定打印出日志追踪sql以查看是否真用到了聚合表。 Mondrian是带有log4j的,只是没有配置。现将配置步骤写下。
修改WEB-INF/classes下的log4j.propeties,如下:
#
# Log4J Konfiguration
#
# - Logs errors on the console
#
log4j.rootLogger = ERROR, A1
# Logging to console
log4j.appender.A1 = org.apache.log4j.ConsoleAppender
# Logging message format
# %d{DATE} Datum im Format dd MMM YYYY HH:mm:ss,SSS
# %-5p Priorität der Meldung 5stellig
# %m Meldung
# %n Zeilenumbruch
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=[JPivot] %d{DATE} %-5p [Session %X{SessionID}] %C#%M: %m%n
file:WEB-INF/classes/log4j.xml
# Set root logger level to DEBUG and its only appender to MONDRIAN.
log4j.rootLogger=WARN, MONDRIAN
# MONDRIAN is set to be a ConsoleAppender.
log4j.appender.MONDRIAN=org.apache.log4j.ConsoleAppender
# MONDRIAN uses PatternLayout.
log4j.appender.MONDRIAN.layout=org.apache.log4j.PatternLayout
log4j.appender.MONDRIAN.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
# Trace MDX and SQL statements
log4j.category.mondrian.mdx=DEBUG, MONDRIAN
log4j.category.mondrian.sql=DEBUG, MONDRIAN
在WEB-INF/classes下添加log4j.xml。内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<!-- ===================================================================== -->
<!-- -->
<!-- Log4j Configuration -->
<!-- -->
<!-- Default log configuration file for the Workbench. -->
<!-- Copied to the user home directory, where the user can change -->
<!-- settings for their own purposes. -->
<!-- -->
<!-- Sends log messages to the console and the workbench.log file -->
<!-- in the user's home directory. -->
<!-- -->
<!-- ===================================================================== -->
<!-- $Id: //open/mondrian/log4j.xml#2 $ -->
<!--
| For more configuration infromation and examples see the Jakarta Log4j
| owebsite: http://jakarta.apache.org/log4j
-->
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
<!-- ================================= -->
<!-- Preserve messages in a local file -->
<!-- ================================= -->
<!-- A size based file rolling appender, capturing everything -->
<appender name="FILE" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="C:/shebao.log"/>
<param name="Append" value="false"/>
<param name="MaxFileSize" value="500KB"/>
<param name="MaxBackupIndex" value="1"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
</layout>
</appender>
<!-- ============================== -->
<!-- Append messages to the console -->
<!-- ============================== -->
<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out"/>
<param name="Threshold" value="WARN"/>
<layout class="org.apache.log4j.PatternLayout">
<!-- The default pattern: Date Priority [Category] Message\n -->
<param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
</layout>
</appender>
<!-- ================ -->
<!-- Limit categories -->
<!-- ================ -->
<!-- Limit the org.apache category to INFO as its DEBUG is verbose -->
<category name="org.apache">
<priority value="INFO"/>
</category>
<category name="com.tonbeller">
<priority value="WARN"/>
</category>
<category name="mondrian.rolap">
<priority value="WARN"/>
</category>
<category name="mondrian.gui">
<priority value="WARN"/>
</category>
<category name="mondrian.sql">
<priority value="DEBUG"/>
</category>
<category name="mondrian.mdx">
<priority value="DEBUG"/>
</category>
<!-- ======================= -->
<!-- Setup the Root category -->
<!-- ======================= -->
<root>
<priority value="INFO"/>
<appender-ref ref="FILE"/>
</root>
</log4j:configuration>
这里日志文件为:c:/shebao.log 可自定义
sql,mdx模式为DEBUG,都将显示在log中
重启Tomcat即可
Have fun
第一次用MarkDown写东西 很新奇
Read other posts