Programmazione:Java/Eclipse RCP/Log4J configurabile da Extension Point

Da WikiSitech.
Vai alla navigazioneVai alla ricerca

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%>

<% } }%>