SlideShare ist ein Scribd-Unternehmen logo
1 von 30
www.SunilOS.com 1
www.sunilos.com
www.raystec.com
Log4J
03/17/16
03/17/16 www.SunilOS.com 2
Introduction
Use Log4J as a standard approach to log
messages in an application.
Messages can be logged to Console, File,
Network, Database etc.
In other words you can print or store your
application messages to Console or File or
Database or other targets.
It is originally developed by IBM
Now it is Open Source
Logging – Conventional Approach
Write all messages on Console.
Console has limitations.
03/17/16 www.SunilOS.com 3
Application
System.out.println
(“Email is working”);
03/17/16 www.SunilOS.com 4
Message Level
 Logging messages can be categorized as
o Debug Message
 S.o.p(“Now inserting record …..”);
o Information Message
 S.o.p(“Email server is started”);
o Warning Message
 S.o.p(“Email server is not started, Email may get delayed”);
o Error Message
 S.o.p(“IP Exception – Shared drive not accessible”);
o Fatal Message
 S.o.p(“Database server is down”);
 Log4J gives separate methods to log different level of
messages
Log4J : Appenders
Log4J facilitates message logging on
multiple targets
o Console
o File
o Network
o FTP
o Database, etc.
An Appender is configured for each target.
03/17/16 www.SunilOS.com 5
03/17/16 www.SunilOS.com 6
Log Messages
 import org.apache.log4j.Logger;
 public class Test{
 static Logger log = Logger.getLogger(Test.class);//Create Logger
 public static void main(String[] args) {
 log.debug("This is Debug Statement");
 log.info("This is Info Statement");
 log.warn("This is Warn Statement");
 log.error("This is Error Statement");
 log.fatal("This is Fatal Statement");
o int i = 0;
o try {
 int x = 5 / i;
o } catch (RuntimeException e) {
 log.error("Arithmetic Error ",e);
o }
 }
 }
03/17/16 www.SunilOS.com 7
Output
 28 Jun 2007 17:35:41 DEBUG TestLog:15 - This is Debug Statement
 28 Jun 2007 17:35:41 INFO TestLog:16 - This is Info Statement
 28 Jun 2007 17:35:41 WARN TestLog:17 - This is Warn Statement
 28 Jun 2007 17:35:41 ERROR TestLog:18 - This is Error Statement
 28 Jun 2007 17:35:41 FATAL TestLog:19 - This is Fatal Statement
 28 Jun 2007 17:35:41 ERROR TestLog:26 - Arithmetic Error
 java.lang.ArithmeticException: / by zero
 at com.log4J.TestLog.main(TestLog.java:24)
03/17/16 www.SunilOS.com 8
Level Priorities
 Level Priorities
o debug< info< warn < error <fatal
 Logging level can be defined in the log4j.properties.
o log4j.rootLogger=debug, stdout
 Log4J will log all the messages for defined level and its high
priority level.
 For example if defined level is debug then it will log
messages for debug, info, warn and fatal.
 If defined level is warn then it will log messages for warn ,
error and fatal levels.
Configuration File
log4j.properties
XML can also be used
Keep it in root class path folder
It will configure
oAppenders
oMessage Layout
oMessage Target
03/17/16 www.SunilOS.com 9
Appender
An Appender is an object that sends log
messages to their final destination.
It defines message targets.
o Console
o File
o Network
o FTP
o Database
o Etc.
03/17/16 www.SunilOS.com 10
Console Appender
03/17/16 www.SunilOS.com 11
03/17/16 www.SunilOS.com 12
Console Appender
Log messages on Console
Configure Standard Output Appender
### direct log messages to std out ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{dd MMM yyyy
HH:mm:ss} %5p %c{1}:%L - %m%n
### set log category - debug,info,warn,error,fatal
log4j.rootLogger=debug,stdout
File Appender
03/17/16 www.SunilOS.com 13
03/17/16 www.SunilOS.com 14
File Appender
Log messages in a File
### direct messages to file hibernate.log ###
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=c:/temp/corejava.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{dd MMM yyyy
HH:mm:ss} %5p %c{1}:%L - %m%n
### set log category - debug,info,warn,error,fatal
log4j.rootLogger=debug,file, stdout
Message will be sent to two appenders file and stdout
Rolling File Appender
It will roll (create) log files based on size or date or
both depending on configuration.
That means new log file will be created when
03/17/16 www.SunilOS.com 15
File size is full
Date is changed
03/17/16 www.SunilOS.com 16
Other Appenders
 SocketAppender – Dumps log output to a socket
 SyslogAppender – Write to the syslog.
 NTEventLogAppender – Write the logs to the NT Event Log
system.
 SocketAppender – Dumps log output to a socket
 SMTPAppender – Sends Messages to email
 JMSAppender – Sends messages using Java Messaging
Service
 Or create your own. Not that difficult.
Message Pattern
log4j.appender.file.layout.ConversionPattern
=%d{dd MMM yyyy HH:mm:ss} %5p %c{1}:
%L - %m%n
Used to customize the layout of a log entry.
The format is closely related to conversion
pattern of the printf function in ‘c’ language.
03/17/16 www.SunilOS.com 17
03/17/16 www.SunilOS.com 18
PatternLayout Options
 c - Used to output the category of the logging event.
 C - Used to output the fully qualified class name of the caller issuing the logging
request.
 d - Used to output the date of the logging event. The date conversion specifier
may be followed by a date format specifier enclosed between braces. For
example, %d{HH:mm:ss,SSS} or %d{dd MMM yyyy HH:mm:ss,SSS}. If no date
format specifier is given then ISO8601 format is assumed
 F - Used to output the file name where the logging request was issued.
 l - Used to output location information of the caller which generated the logging
event. (C+M+L)
 L - Used to output the line number from where the logging request was issued.
03/17/16 www.SunilOS.com 19
PatternLayout ( Contd.)
 n - Outputs the platform dependent line separator character or
characters.
 M - Used to output the method name where the logging request was
issued.
 p - Used to output the priority of the logging event.
 t - Used to output the name of the thread that generated the logging
event.
 x - Used to output the NDC (nested diagnostic context) associated with
the thread that generated the logging event.
Application Environments
There are different application environment
for different kind of users
Developer develops application in
development Environment
Tester tests application in QA Environment
End User accesses application from
Production Environment ( Live Server )
03/17/16 www.SunilOS.com 20
03/17/16 www.SunilOS.com 21
Application Environments
Development
Tomcat
MySQL
Test ( QA )
Tomcat
MySQL
Production
Tomcat
MySQL
Developer Testers End User
03/17/16 www.SunilOS.com 22
Application Environments
Development
JBoss
Oracle
Test ( QA )
JBoss
Oracle
Production
JBoss
Oracle
Developer Testers End User
03/17/16 www.SunilOS.com 23
Application Environments
Development
Tomcat
Oracle
Test ( QA )
Tomcat
Production
Tomcat
DB
Developer Testers End User
03/17/16 www.SunilOS.com 24
Environments
Development
JBoss
Oracle
Test ( QA )
JBoss
Production
JBoss
Oracle
Developer Testers End User
App Env & Message Level
There are different message levels for
different application environments
o Development Environment : debug
o Test (QA) Environment : info
o Production : warn
03/17/16 www.SunilOS.com 25
Say NO to
System.out.println(“message”);
03/17/16 www.SunilOS.com 26
Say YES to
Log4J
03/17/16 www.SunilOS.com 27
Dependency
log4j.jar
03/17/16 www.SunilOS.com 28
Disclaimer
This is an educational presentation to enhance the
skill of computer science students.
This presentation is available for free to computer
science students.
Some internet images from different URLs are
used in this presentation to simplify technical
examples and correlate examples with the real
world.
We are grateful to owners of these URLs and
pictures.
www.SunilOS.com 2903/17/16
Thank You!
www.SunilOS.com 30
www.SunilOS.com
03/17/16

Weitere ähnliche Inhalte

Was ist angesagt?

Easy data-with-spring-data-jpa
Easy data-with-spring-data-jpaEasy data-with-spring-data-jpa
Easy data-with-spring-data-jpa
Staples
 
Understanding java streams
Understanding java streamsUnderstanding java streams
Understanding java streams
Shahjahan Samoon
 

Was ist angesagt? (20)

Resource Bundle
Resource BundleResource Bundle
Resource Bundle
 
OOP V3.1
OOP V3.1OOP V3.1
OOP V3.1
 
JavaScript
JavaScriptJavaScript
JavaScript
 
Java Basics V3
Java Basics V3Java Basics V3
Java Basics V3
 
Java IO Streams V4
Java IO Streams V4Java IO Streams V4
Java IO Streams V4
 
Collections Framework
Collections FrameworkCollections Framework
Collections Framework
 
Java Basics
Java BasicsJava Basics
Java Basics
 
Threads V4
Threads  V4Threads  V4
Threads V4
 
Java Threads and Concurrency
Java Threads and ConcurrencyJava Threads and Concurrency
Java Threads and Concurrency
 
JAVA OOP
JAVA OOPJAVA OOP
JAVA OOP
 
Easy data-with-spring-data-jpa
Easy data-with-spring-data-jpaEasy data-with-spring-data-jpa
Easy data-with-spring-data-jpa
 
Java Input Output and File Handling
Java Input Output and File HandlingJava Input Output and File Handling
Java Input Output and File Handling
 
CSS
CSS CSS
CSS
 
Java 8 Lambda Built-in Functional Interfaces
Java 8 Lambda Built-in Functional InterfacesJava 8 Lambda Built-in Functional Interfaces
Java 8 Lambda Built-in Functional Interfaces
 
Machine learning ( Part 3 )
Machine learning ( Part 3 )Machine learning ( Part 3 )
Machine learning ( Part 3 )
 
Understanding java streams
Understanding java streamsUnderstanding java streams
Understanding java streams
 
Spring Boot
Spring BootSpring Boot
Spring Boot
 
Spring 3.x - Spring MVC - Advanced topics
Spring 3.x - Spring MVC - Advanced topicsSpring 3.x - Spring MVC - Advanced topics
Spring 3.x - Spring MVC - Advanced topics
 
Java version 11 - les 9 nouveautes
Java version 11 -  les 9 nouveautesJava version 11 -  les 9 nouveautes
Java version 11 - les 9 nouveautes
 
PUC SE Day 2019 - SpringBoot
PUC SE Day 2019 - SpringBootPUC SE Day 2019 - SpringBoot
PUC SE Day 2019 - SpringBoot
 

Andere mochten auch (11)

C# Variables and Operators
C# Variables and OperatorsC# Variables and Operators
C# Variables and Operators
 
Rays Technologies
Rays TechnologiesRays Technologies
Rays Technologies
 
C# Basics
C# BasicsC# Basics
C# Basics
 
C++ oop
C++ oopC++ oop
C++ oop
 
Java Swing JFC
Java Swing JFCJava Swing JFC
Java Swing JFC
 
Eschool erp School Management System SMS System School Software
Eschool erp School Management System SMS System School SoftwareEschool erp School Management System SMS System School Software
Eschool erp School Management System SMS System School Software
 
C Basics
C BasicsC Basics
C Basics
 
Hibernate & JPA perfomance
Hibernate & JPA perfomance Hibernate & JPA perfomance
Hibernate & JPA perfomance
 
C++
C++C++
C++
 
Unit Testing with JUnit4 by Ravikiran Janardhana
Unit Testing with JUnit4 by Ravikiran JanardhanaUnit Testing with JUnit4 by Ravikiran Janardhana
Unit Testing with JUnit4 by Ravikiran Janardhana
 
Hibernate
HibernateHibernate
Hibernate
 

Ähnlich wie Log4 J

Trouble shoot with linux syslog
Trouble shoot with linux syslogTrouble shoot with linux syslog
Trouble shoot with linux syslog
ashok191
 
27.1.5 lab convert data into a universal format
27.1.5 lab   convert data into a universal format27.1.5 lab   convert data into a universal format
27.1.5 lab convert data into a universal format
Freddy Buenaño
 
TechDoc - WMB - Administration - Logs
TechDoc - WMB - Administration - LogsTechDoc - WMB - Administration - Logs
TechDoc - WMB - Administration - Logs
Glen Brumbaugh
 
Cis 170 c ilab 7 of 7 sequential files
Cis 170 c ilab 7 of 7 sequential filesCis 170 c ilab 7 of 7 sequential files
Cis 170 c ilab 7 of 7 sequential files
CIS321
 
Crash dump analysis - experience sharing
Crash dump analysis - experience sharingCrash dump analysis - experience sharing
Crash dump analysis - experience sharing
James Hsieh
 
Logging Services for .net - log4net
Logging Services for .net - log4netLogging Services for .net - log4net
Logging Services for .net - log4net
Guo Albert
 

Ähnlich wie Log4 J (20)

Trouble shoot with linux syslog
Trouble shoot with linux syslogTrouble shoot with linux syslog
Trouble shoot with linux syslog
 
Log4j
Log4jLog4j
Log4j
 
11i Logs
11i Logs11i Logs
11i Logs
 
Mp lab manual
Mp lab manualMp lab manual
Mp lab manual
 
Back-2-Basics: Exception & Event Instrumentation in .NET
Back-2-Basics: Exception & Event Instrumentation in .NETBack-2-Basics: Exception & Event Instrumentation in .NET
Back-2-Basics: Exception & Event Instrumentation in .NET
 
Back-2-Basics: Exception & Event Instrumentation in .NET
Back-2-Basics: Exception & Event Instrumentation in .NETBack-2-Basics: Exception & Event Instrumentation in .NET
Back-2-Basics: Exception & Event Instrumentation in .NET
 
(1) c sharp introduction_basics_dot_net
(1) c sharp introduction_basics_dot_net(1) c sharp introduction_basics_dot_net
(1) c sharp introduction_basics_dot_net
 
27.1.5 lab convert data into a universal format
27.1.5 lab   convert data into a universal format27.1.5 lab   convert data into a universal format
27.1.5 lab convert data into a universal format
 
TechDoc - WMB - Administration - Logs
TechDoc - WMB - Administration - LogsTechDoc - WMB - Administration - Logs
TechDoc - WMB - Administration - Logs
 
Cis 170 c ilab 7 of 7 sequential files
Cis 170 c ilab 7 of 7 sequential filesCis 170 c ilab 7 of 7 sequential files
Cis 170 c ilab 7 of 7 sequential files
 
Logging
LoggingLogging
Logging
 
Crash dump analysis - experience sharing
Crash dump analysis - experience sharingCrash dump analysis - experience sharing
Crash dump analysis - experience sharing
 
Logging & Metrics with Docker
Logging & Metrics with DockerLogging & Metrics with Docker
Logging & Metrics with Docker
 
Srgoc dotnet
Srgoc dotnetSrgoc dotnet
Srgoc dotnet
 
Logging Services for .net - log4net
Logging Services for .net - log4netLogging Services for .net - log4net
Logging Services for .net - log4net
 
Building of systems of automatic C/C++ code logging
Building of systems of automatic C/C++ code loggingBuilding of systems of automatic C/C++ code logging
Building of systems of automatic C/C++ code logging
 
Backtrack Manual Part6
Backtrack Manual Part6Backtrack Manual Part6
Backtrack Manual Part6
 
project_docs
project_docsproject_docs
project_docs
 
Unix Administration 5
Unix Administration 5Unix Administration 5
Unix Administration 5
 
OpenNTF Domino API - Overview Introduction
OpenNTF Domino API - Overview IntroductionOpenNTF Domino API - Overview Introduction
OpenNTF Domino API - Overview Introduction
 

Mehr von Sunil OS (11)

DJango
DJangoDJango
DJango
 
PDBC
PDBCPDBC
PDBC
 
OOP v3
OOP v3OOP v3
OOP v3
 
Threads v3
Threads v3Threads v3
Threads v3
 
Exception Handling v3
Exception Handling v3Exception Handling v3
Exception Handling v3
 
Machine learning ( Part 2 )
Machine learning ( Part 2 )Machine learning ( Part 2 )
Machine learning ( Part 2 )
 
Machine learning ( Part 1 )
Machine learning ( Part 1 )Machine learning ( Part 1 )
Machine learning ( Part 1 )
 
Python Pandas
Python PandasPython Pandas
Python Pandas
 
Python part2 v1
Python part2 v1Python part2 v1
Python part2 v1
 
Angular 8
Angular 8 Angular 8
Angular 8
 
Python Part 1
Python Part 1Python Part 1
Python Part 1
 

Kürzlich hochgeladen

會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽
會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽
會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽
中 央社
 
SURVEY I created for uni project research
SURVEY I created for uni project researchSURVEY I created for uni project research
SURVEY I created for uni project research
CaitlinCummins3
 

Kürzlich hochgeladen (20)

The Liver & Gallbladder (Anatomy & Physiology).pptx
The Liver &  Gallbladder (Anatomy & Physiology).pptxThe Liver &  Gallbladder (Anatomy & Physiology).pptx
The Liver & Gallbladder (Anatomy & Physiology).pptx
 
DEMONSTRATION LESSON IN ENGLISH 4 MATATAG CURRICULUM
DEMONSTRATION LESSON IN ENGLISH 4 MATATAG CURRICULUMDEMONSTRATION LESSON IN ENGLISH 4 MATATAG CURRICULUM
DEMONSTRATION LESSON IN ENGLISH 4 MATATAG CURRICULUM
 
philosophy and it's principles based on the life
philosophy and it's principles based on the lifephilosophy and it's principles based on the life
philosophy and it's principles based on the life
 
male presentation...pdf.................
male presentation...pdf.................male presentation...pdf.................
male presentation...pdf.................
 
BỘ LUYỆN NGHE TIẾNG ANH 8 GLOBAL SUCCESS CẢ NĂM (GỒM 12 UNITS, MỖI UNIT GỒM 3...
BỘ LUYỆN NGHE TIẾNG ANH 8 GLOBAL SUCCESS CẢ NĂM (GỒM 12 UNITS, MỖI UNIT GỒM 3...BỘ LUYỆN NGHE TIẾNG ANH 8 GLOBAL SUCCESS CẢ NĂM (GỒM 12 UNITS, MỖI UNIT GỒM 3...
BỘ LUYỆN NGHE TIẾNG ANH 8 GLOBAL SUCCESS CẢ NĂM (GỒM 12 UNITS, MỖI UNIT GỒM 3...
 
An overview of the various scriptures in Hinduism
An overview of the various scriptures in HinduismAn overview of the various scriptures in Hinduism
An overview of the various scriptures in Hinduism
 
demyelinated disorder: multiple sclerosis.pptx
demyelinated disorder: multiple sclerosis.pptxdemyelinated disorder: multiple sclerosis.pptx
demyelinated disorder: multiple sclerosis.pptx
 
Championnat de France de Tennis de table/
Championnat de France de Tennis de table/Championnat de France de Tennis de table/
Championnat de France de Tennis de table/
 
Envelope of Discrepancy in Orthodontics: Enhancing Precision in Treatment
 Envelope of Discrepancy in Orthodontics: Enhancing Precision in Treatment Envelope of Discrepancy in Orthodontics: Enhancing Precision in Treatment
Envelope of Discrepancy in Orthodontics: Enhancing Precision in Treatment
 
PSYPACT- Practicing Over State Lines May 2024.pptx
PSYPACT- Practicing Over State Lines May 2024.pptxPSYPACT- Practicing Over State Lines May 2024.pptx
PSYPACT- Practicing Over State Lines May 2024.pptx
 
會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽
會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽
會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽會考英聽
 
Exploring Gemini AI and Integration with MuleSoft | MuleSoft Mysore Meetup #45
Exploring Gemini AI and Integration with MuleSoft | MuleSoft Mysore Meetup #45Exploring Gemini AI and Integration with MuleSoft | MuleSoft Mysore Meetup #45
Exploring Gemini AI and Integration with MuleSoft | MuleSoft Mysore Meetup #45
 
An Overview of the Odoo 17 Knowledge App
An Overview of the Odoo 17 Knowledge AppAn Overview of the Odoo 17 Knowledge App
An Overview of the Odoo 17 Knowledge App
 
Stl Algorithms in C++ jjjjjjjjjjjjjjjjjj
Stl Algorithms in C++ jjjjjjjjjjjjjjjjjjStl Algorithms in C++ jjjjjjjjjjjjjjjjjj
Stl Algorithms in C++ jjjjjjjjjjjjjjjjjj
 
UChicago CMSC 23320 - The Best Commit Messages of 2024
UChicago CMSC 23320 - The Best Commit Messages of 2024UChicago CMSC 23320 - The Best Commit Messages of 2024
UChicago CMSC 23320 - The Best Commit Messages of 2024
 
IPL Online Quiz by Pragya; Question Set.
IPL Online Quiz by Pragya; Question Set.IPL Online Quiz by Pragya; Question Set.
IPL Online Quiz by Pragya; Question Set.
 
SURVEY I created for uni project research
SURVEY I created for uni project researchSURVEY I created for uni project research
SURVEY I created for uni project research
 
How to Analyse Profit of a Sales Order in Odoo 17
How to Analyse Profit of a Sales Order in Odoo 17How to Analyse Profit of a Sales Order in Odoo 17
How to Analyse Profit of a Sales Order in Odoo 17
 
Including Mental Health Support in Project Delivery, 14 May.pdf
Including Mental Health Support in Project Delivery, 14 May.pdfIncluding Mental Health Support in Project Delivery, 14 May.pdf
Including Mental Health Support in Project Delivery, 14 May.pdf
 
“O BEIJO” EM ARTE .
“O BEIJO” EM ARTE                       .“O BEIJO” EM ARTE                       .
“O BEIJO” EM ARTE .
 

Log4 J

  • 2. 03/17/16 www.SunilOS.com 2 Introduction Use Log4J as a standard approach to log messages in an application. Messages can be logged to Console, File, Network, Database etc. In other words you can print or store your application messages to Console or File or Database or other targets. It is originally developed by IBM Now it is Open Source
  • 3. Logging – Conventional Approach Write all messages on Console. Console has limitations. 03/17/16 www.SunilOS.com 3 Application System.out.println (“Email is working”);
  • 4. 03/17/16 www.SunilOS.com 4 Message Level  Logging messages can be categorized as o Debug Message  S.o.p(“Now inserting record …..”); o Information Message  S.o.p(“Email server is started”); o Warning Message  S.o.p(“Email server is not started, Email may get delayed”); o Error Message  S.o.p(“IP Exception – Shared drive not accessible”); o Fatal Message  S.o.p(“Database server is down”);  Log4J gives separate methods to log different level of messages
  • 5. Log4J : Appenders Log4J facilitates message logging on multiple targets o Console o File o Network o FTP o Database, etc. An Appender is configured for each target. 03/17/16 www.SunilOS.com 5
  • 6. 03/17/16 www.SunilOS.com 6 Log Messages  import org.apache.log4j.Logger;  public class Test{  static Logger log = Logger.getLogger(Test.class);//Create Logger  public static void main(String[] args) {  log.debug("This is Debug Statement");  log.info("This is Info Statement");  log.warn("This is Warn Statement");  log.error("This is Error Statement");  log.fatal("This is Fatal Statement"); o int i = 0; o try {  int x = 5 / i; o } catch (RuntimeException e) {  log.error("Arithmetic Error ",e); o }  }  }
  • 7. 03/17/16 www.SunilOS.com 7 Output  28 Jun 2007 17:35:41 DEBUG TestLog:15 - This is Debug Statement  28 Jun 2007 17:35:41 INFO TestLog:16 - This is Info Statement  28 Jun 2007 17:35:41 WARN TestLog:17 - This is Warn Statement  28 Jun 2007 17:35:41 ERROR TestLog:18 - This is Error Statement  28 Jun 2007 17:35:41 FATAL TestLog:19 - This is Fatal Statement  28 Jun 2007 17:35:41 ERROR TestLog:26 - Arithmetic Error  java.lang.ArithmeticException: / by zero  at com.log4J.TestLog.main(TestLog.java:24)
  • 8. 03/17/16 www.SunilOS.com 8 Level Priorities  Level Priorities o debug< info< warn < error <fatal  Logging level can be defined in the log4j.properties. o log4j.rootLogger=debug, stdout  Log4J will log all the messages for defined level and its high priority level.  For example if defined level is debug then it will log messages for debug, info, warn and fatal.  If defined level is warn then it will log messages for warn , error and fatal levels.
  • 9. Configuration File log4j.properties XML can also be used Keep it in root class path folder It will configure oAppenders oMessage Layout oMessage Target 03/17/16 www.SunilOS.com 9
  • 10. Appender An Appender is an object that sends log messages to their final destination. It defines message targets. o Console o File o Network o FTP o Database o Etc. 03/17/16 www.SunilOS.com 10
  • 12. 03/17/16 www.SunilOS.com 12 Console Appender Log messages on Console Configure Standard Output Appender ### direct log messages to std out ### log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.out log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d{dd MMM yyyy HH:mm:ss} %5p %c{1}:%L - %m%n ### set log category - debug,info,warn,error,fatal log4j.rootLogger=debug,stdout
  • 14. 03/17/16 www.SunilOS.com 14 File Appender Log messages in a File ### direct messages to file hibernate.log ### log4j.appender.file=org.apache.log4j.FileAppender log4j.appender.file.File=c:/temp/corejava.log log4j.appender.file.layout=org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern=%d{dd MMM yyyy HH:mm:ss} %5p %c{1}:%L - %m%n ### set log category - debug,info,warn,error,fatal log4j.rootLogger=debug,file, stdout Message will be sent to two appenders file and stdout
  • 15. Rolling File Appender It will roll (create) log files based on size or date or both depending on configuration. That means new log file will be created when 03/17/16 www.SunilOS.com 15 File size is full Date is changed
  • 16. 03/17/16 www.SunilOS.com 16 Other Appenders  SocketAppender – Dumps log output to a socket  SyslogAppender – Write to the syslog.  NTEventLogAppender – Write the logs to the NT Event Log system.  SocketAppender – Dumps log output to a socket  SMTPAppender – Sends Messages to email  JMSAppender – Sends messages using Java Messaging Service  Or create your own. Not that difficult.
  • 17. Message Pattern log4j.appender.file.layout.ConversionPattern =%d{dd MMM yyyy HH:mm:ss} %5p %c{1}: %L - %m%n Used to customize the layout of a log entry. The format is closely related to conversion pattern of the printf function in ‘c’ language. 03/17/16 www.SunilOS.com 17
  • 18. 03/17/16 www.SunilOS.com 18 PatternLayout Options  c - Used to output the category of the logging event.  C - Used to output the fully qualified class name of the caller issuing the logging request.  d - Used to output the date of the logging event. The date conversion specifier may be followed by a date format specifier enclosed between braces. For example, %d{HH:mm:ss,SSS} or %d{dd MMM yyyy HH:mm:ss,SSS}. If no date format specifier is given then ISO8601 format is assumed  F - Used to output the file name where the logging request was issued.  l - Used to output location information of the caller which generated the logging event. (C+M+L)  L - Used to output the line number from where the logging request was issued.
  • 19. 03/17/16 www.SunilOS.com 19 PatternLayout ( Contd.)  n - Outputs the platform dependent line separator character or characters.  M - Used to output the method name where the logging request was issued.  p - Used to output the priority of the logging event.  t - Used to output the name of the thread that generated the logging event.  x - Used to output the NDC (nested diagnostic context) associated with the thread that generated the logging event.
  • 20. Application Environments There are different application environment for different kind of users Developer develops application in development Environment Tester tests application in QA Environment End User accesses application from Production Environment ( Live Server ) 03/17/16 www.SunilOS.com 20
  • 21. 03/17/16 www.SunilOS.com 21 Application Environments Development Tomcat MySQL Test ( QA ) Tomcat MySQL Production Tomcat MySQL Developer Testers End User
  • 22. 03/17/16 www.SunilOS.com 22 Application Environments Development JBoss Oracle Test ( QA ) JBoss Oracle Production JBoss Oracle Developer Testers End User
  • 23. 03/17/16 www.SunilOS.com 23 Application Environments Development Tomcat Oracle Test ( QA ) Tomcat Production Tomcat DB Developer Testers End User
  • 24. 03/17/16 www.SunilOS.com 24 Environments Development JBoss Oracle Test ( QA ) JBoss Production JBoss Oracle Developer Testers End User
  • 25. App Env & Message Level There are different message levels for different application environments o Development Environment : debug o Test (QA) Environment : info o Production : warn 03/17/16 www.SunilOS.com 25
  • 27. Say YES to Log4J 03/17/16 www.SunilOS.com 27
  • 29. Disclaimer This is an educational presentation to enhance the skill of computer science students. This presentation is available for free to computer science students. Some internet images from different URLs are used in this presentation to simplify technical examples and correlate examples with the real world. We are grateful to owners of these URLs and pictures. www.SunilOS.com 2903/17/16