Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package nz.ac.massey.cs.sdc.log4jassignment.s10056330;
- import java.io.StringWriter;
- import java.text.SimpleDateFormat;
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.Iterator;
- import java.util.List;
- import org.apache.log4j.Appender;
- import org.apache.log4j.ConsoleAppender;
- import org.apache.log4j.Layout;
- import org.apache.log4j.spi.LoggingEvent;
- import org.apache.velocity.*;
- import org.apache.velocity.app.Velocity;
- import com.vladium.logging.Logger;
- public class VelocityLayout extends Layout {
- static VelocityContext context;
- static StringWriter w;
- static MemoryAppender app;
- public VelocityLayout(String pattern) {
- Velocity.init();
- context = new VelocityContext();
- w = new StringWriter();
- }
- @Override
- public void activateOptions() {
- // TODO Auto-generated method stub
- }
- @Override
- public String format(LoggingEvent arg0) {
- // TODO Auto-generated method stub
- Date date = new Date();
- SimpleDateFormat format = new SimpleDateFormat();
- context.put("c", arg0.getLoggerName());
- context.put("d", format.format(arg0.getTimeStamp()));
- context.put("n", "\n");
- context.put("m", arg0.getMessage());
- context.put("p", arg0.getLevel());
- context.put("t", arg0.getThreadName());
- return null;
- }
- @Override
- public boolean ignoresThrowable() {
- // TODO Auto-generated method stub
- return false;
- }
- public static void main(String[] args) {
- // ConsoleAppender app = new ConsoleAppender();
- // String pattern = "$m$n$d";
- // VelocityLayout velLayout = new VelocityLayout(pattern);
- // app.setLayout(velLayout);
- // Velocity.evaluate(context, w, "myString", pattern);
- // System.out.println(w.toString());
- logTest();
- }
- public static void logTest() {
- app = new MemoryAppender(ArrayList.class);
- String pattern = "$m$n$d";
- VelocityLayout velLayout = new VelocityLayout(pattern);
- Velocity.evaluate(context, w, "myString", pattern);
- System.out.println(w.toString());
- app.setLayout(velLayout);
- org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger("test");
- log.addAppender(app);
- log.info("test");
- log.info("one");
- List<LoggingEvent> l = app.getLogs();
- Iterator it = l.iterator();
- while (it.hasNext()) {
- LoggingEvent next = (LoggingEvent) it.next();
- System.out.println(next.getMessage());
- }
- }
- }
Add Comment
Please, Sign In to add comment