Differenze tra le versioni di "Programmazione:Java/Eclipse RCP/Log4J configurabile da Extension Point"

Da WikiSitech.
Vai alla navigazioneVai alla ricerca
 
Riga 10: Riga 10:
  
 
|}
 
|}
 +
 +
Dopo bisogna convertirlo in un progetto Java Entermitted Template (JET):
 +
{| cellspacing=15 width="100%"
 +
 +
|- valign="top"
 +
|width="50%"|
 +
[[Immagine:LoggerJetConversion.jpg]]
 +
|width="50%"|
 +
[[Immagine:LoggerJetConversion2.jpg]]
 +
 +
|}
 +
 +
e configurarlo in maniera corretta:
 +
 +
[[Immagine:LoggerJetConversion3.jpg]]
 +
 +
A questo punto è possibile iniziare la scrittura del template....
 +
 +
==JET Template==
 +
Questo è un template JET che permette la generzione di un file di configurazione di log4j
 +
<code xml>
 +
<%@ jet package="org.logger.log4j.logger.generator" imports="org.logger.log4j.logger.bean.*" class="Log4JGenerator" %><%
 +
Log4JDefinitionBean bean = (Log4JDefinitionBean)argument;
 +
%>
 +
log4j.rootLogger=<%=bean.rootLevel.toString()%>
 +
 +
# -----> Logger definition
 +
<% for(java.util.Iterator<LoggerDefinition> it = bean.loggers.iterator(); it.hasNext();) {
 +
LoggerDefinition o = it.next();
 +
if(o.appenders.size() > 0) {
 +
%>
 +
log4j.logger.<%=o.logger%>=<%=o.level.toString()%>,<%= o.log_in_console ? " APPENDER_CONSOLE, " : " "%><%=o.getAppenders()%>
 +
<%}
 +
}
 +
%>
 +
 +
# ----------------------------------------------------------------
 +
# APPENDER_CONSOLE appender
 +
# ----------------------------------------------------------------
 +
log4j.appender.APPENDER_CONSOLE=org.apache.log4j.ConsoleAppender
 +
log4j.appender.APPENDER_CONSOLE.layout=org.apache.log4j.PatternLayout
 +
log4j.appender.APPENDER_CONSOLE.layout.ConversionPattern=[%d] [%-5p] [%c{3}] - %m %n
 +
<% for(java.util.Iterator<AppenderDefinition> it = bean.appenders.iterator(); it.hasNext();) {
 +
AppenderDefinition o = it.next();
 +
%>
 +
 +
# ----------------------------------------------------------------
 +
# <%=o.appender %> appender
 +
# ----------------------------------------------------------------
 +
log4j.appender.<%=o.appender %>.File=<%=o.file%>
 +
log4j.appender.<%=o.appender %>.layout=<%=o.layout_class%>
 +
log4j.appender.<%=o.appender %>.layout.ConversionPattern=<%=o.layout_conversion_pattern%>
 +
log4j.appender.<%=o.appender %>.append=<%=o.append%>
 +
<%if(o instanceof DailyAppenderDefinition) { %>
 +
# Daily LOG
 +
log4j.appender.<%=o.appender %>=org.apache.log4j.DailyRollingFileAppender
 +
log4j.appender.<%=o.appender %>.DatePattern=<%=((DailyAppenderDefinition)o).date_pattern%>
 +
<% } else if(o instanceof RollingAppenderDefinition) {%>
 +
# Rolling LOG
 +
log4j.appender.<%=o.appender %>=org.apache.log4j.RollingFileAppender
 +
log4j.appender.<%=o.appender %>.MaxFileSize=<%=((RollingAppenderDefinition)o).max_size%>
 +
log4j.appender.<%=o.appender %>.MaxBackupIndex=<%=((RollingAppenderDefinition)o).max_backup%>
 +
 +
<% }
 +
}%>
 +
</code>

Versione delle 16:35, 16 nov 2007

Per avere un logger Log4J configurabile da extension point bisogna prima di tutto crearsi il progetto di tipo plugin:

LoggerNewProject.jpg

LoggerNewProject2.jpg

Dopo bisogna convertirlo in un progetto Java Entermitted Template (JET):

LoggerJetConversion.jpg

LoggerJetConversion2.jpg

e configurarlo in maniera corretta:

LoggerJetConversion3.jpg

A questo punto è possibile iniziare la scrittura del template....

JET Template

Questo è un template JET che permette la generzione di un file di configurazione di log4j <%@ jet package="org.logger.log4j.logger.generator" imports="org.logger.log4j.logger.bean.*" class="Log4JGenerator" %><% Log4JDefinitionBean bean = (Log4JDefinitionBean)argument; %> log4j.rootLogger=<%=bean.rootLevel.toString()%>

  1. -----> Logger definition

<% for(java.util.Iterator<LoggerDefinition> it = bean.loggers.iterator(); it.hasNext();) { LoggerDefinition o = it.next(); if(o.appenders.size() > 0) { %> log4j.logger.<%=o.logger%>=<%=o.level.toString()%>,<%= o.log_in_console ? " APPENDER_CONSOLE, " : " "%><%=o.getAppenders()%> <%} } %>

  1. ----------------------------------------------------------------
  2. APPENDER_CONSOLE appender
  3. ----------------------------------------------------------------

log4j.appender.APPENDER_CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.APPENDER_CONSOLE.layout=org.apache.log4j.PatternLayout log4j.appender.APPENDER_CONSOLE.layout.ConversionPattern=[%d] [%-5p] [%c{3}] - %m %n <% for(java.util.Iterator<AppenderDefinition> it = bean.appenders.iterator(); it.hasNext();) { AppenderDefinition o = it.next(); %>

  1. ----------------------------------------------------------------
  2. <%=o.appender %> appender
  3. ----------------------------------------------------------------

log4j.appender.<%=o.appender %>.File=<%=o.file%> log4j.appender.<%=o.appender %>.layout=<%=o.layout_class%> log4j.appender.<%=o.appender %>.layout.ConversionPattern=<%=o.layout_conversion_pattern%> log4j.appender.<%=o.appender %>.append=<%=o.append%> <%if(o instanceof DailyAppenderDefinition) { %>

  1. Daily LOG

log4j.appender.<%=o.appender %>=org.apache.log4j.DailyRollingFileAppender log4j.appender.<%=o.appender %>.DatePattern=<%=((DailyAppenderDefinition)o).date_pattern%> <% } else if(o instanceof RollingAppenderDefinition) {%>

  1. Rolling LOG

log4j.appender.<%=o.appender %>=org.apache.log4j.RollingFileAppender log4j.appender.<%=o.appender %>.MaxFileSize=<%=((RollingAppenderDefinition)o).max_size%> log4j.appender.<%=o.appender %>.MaxBackupIndex=<%=((RollingAppenderDefinition)o).max_backup%>

<% } }%>