Guest User

Untitled

a guest
Dec 11th, 2018
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.26 KB | None | 0 0
  1. package nz.ac.massey.cs.sdc.log4jassignment.s10056330;
  2.  
  3. import java.io.StringWriter;
  4. import java.text.SimpleDateFormat;
  5. import java.util.ArrayList;
  6. import java.util.Date;
  7. import java.util.Iterator;
  8. import java.util.List;
  9.  
  10. import org.apache.log4j.Appender;
  11. import org.apache.log4j.ConsoleAppender;
  12. import org.apache.log4j.Layout;
  13. import org.apache.log4j.spi.LoggingEvent;
  14. import org.apache.velocity.*;
  15. import org.apache.velocity.app.Velocity;
  16.  
  17. import com.vladium.logging.Logger;
  18.  
  19. public class VelocityLayout extends Layout {
  20. static VelocityContext context;
  21. static StringWriter w;
  22. static MemoryAppender app;
  23.  
  24. public VelocityLayout(String pattern) {
  25. Velocity.init();
  26. context = new VelocityContext();
  27. w = new StringWriter();
  28. }
  29.  
  30. @Override
  31. public void activateOptions() {
  32. // TODO Auto-generated method stub
  33.  
  34. }
  35.  
  36. @Override
  37. public String format(LoggingEvent arg0) {
  38. // TODO Auto-generated method stub
  39.  
  40. Date date = new Date();
  41. SimpleDateFormat format = new SimpleDateFormat();
  42.  
  43. context.put("c", arg0.getLoggerName());
  44. context.put("d", format.format(arg0.getTimeStamp()));
  45. context.put("n", "\n");
  46. context.put("m", arg0.getMessage());
  47. context.put("p", arg0.getLevel());
  48. context.put("t", arg0.getThreadName());
  49.  
  50. return null;
  51. }
  52.  
  53. @Override
  54. public boolean ignoresThrowable() {
  55. // TODO Auto-generated method stub
  56. return false;
  57. }
  58.  
  59. public static void main(String[] args) {
  60. // ConsoleAppender app = new ConsoleAppender();
  61. // String pattern = "$m$n$d";
  62. // VelocityLayout velLayout = new VelocityLayout(pattern);
  63. // app.setLayout(velLayout);
  64. // Velocity.evaluate(context, w, "myString", pattern);
  65. // System.out.println(w.toString());
  66. logTest();
  67. }
  68.  
  69. public static void logTest() {
  70. app = new MemoryAppender(ArrayList.class);
  71. String pattern = "$m$n$d";
  72. VelocityLayout velLayout = new VelocityLayout(pattern);
  73. Velocity.evaluate(context, w, "myString", pattern);
  74. System.out.println(w.toString());
  75. app.setLayout(velLayout);
  76. org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger("test");
  77. log.addAppender(app);
  78.  
  79. log.info("test");
  80. log.info("one");
  81.  
  82. List<LoggingEvent> l = app.getLogs();
  83. Iterator it = l.iterator();
  84.  
  85. while (it.hasNext()) {
  86. LoggingEvent next = (LoggingEvent) it.next();
  87. System.out.println(next.getMessage());
  88. }
  89. }
  90.  
  91. }
Add Comment
Please, Sign In to add comment