{"id":13576,"date":"2014-08-26T11:00:13","date_gmt":"2014-08-26T08:00:13","guid":{"rendered":"http:\/\/examples.javacodegeeks.com\/?p=13576"},"modified":"2014-09-03T06:19:33","modified_gmt":"2014-09-03T03:19:33","slug":"log4j-appender-example","status":"publish","type":"post","link":"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/log4j\/log4j-appender-example\/","title":{"rendered":"log4j &#8211; Appender Example"},"content":{"rendered":"<p>In this post, we are going to discuss about <code><a href=\"http:\/\/logging.apache.org\/log4j\/1.2\/\" title=\"log4j\" target=\"_blank\">log4j<\/a><\/code> <em>appenders<\/em> and how you configure it using an log4j.xml file.<\/p>\n<h2>1. What is log4j?<\/h2>\n<p><strong>log4j <\/strong>is a tool to help the programmer output log statements to a variety of output targets.<\/p>\n<p>In case of problems with an application, it is helpful to enable logging so that the problem can be located. With <em>log4j<\/em> it is possible to enable logging at runtime without modifying the application binary. The <em>log4j<\/em> package is designed so that log statements can remain in shipped code without incurring a high performance cost. It follows that the speed of logging (or rather not logging) is capital.<\/p>\n<p>At the same time, log output can be so voluminous that it quickly becomes overwhelming. One of the distinctive features of <em>log4j<\/em> is the notion of hierarchical loggers. Using loggers it is possible to selectively control which log statements are output at arbitrary granularity.<\/p>\n<p><em>log4j<\/em> is designed with three goals in mind: reliability, speed and flexibility. There is a tight balance between these requirements. We believe that log4j strikes the right balance.<\/p>\n<p><em>log4j<\/em> has three main components: <em>loggers<\/em>, <strong>appenders<\/strong> and <em>layouts<\/em>. These three types of components work together to enable developers to log messages according to message type and level, and to control at runtime how these messages are formatted and <strong>where they are reported<\/strong>.<\/p>\n<h3>1.1 What are log4j appenders?<\/h3>\n<p><em>log4j<\/em> allows logging requests to print to multiple destinations. In <em>log4j<\/em> speak an output destination is called an <em>appender<\/em>. Currently, appenders exist for the console, files, Swing components, remote socket servers, JMS, NT Event Loggers, and remote UNIX Syslog daemons. Log4j allows attaching multiple appenders to any logger. Appenders can be added to and removed from a logger at any time. A logger can make use of one and only one level.<\/p>\n<h3>1.2 log4j layouts<\/h3>\n<p>More often than not, users wish to customize not only the output destination but also the output format. This is accomplished by associating a layout with an appender. The layout is responsible for formatting the logging request according to the user&#8217;s wishes, whereas an appender takes care of sending formatted output to its destination. Most layouts are not designed to be shared by multiple appenders. It follows that each appender must have its own \u201cprivate\u201d layout.<\/p>\n<p>A common layout called the <code><a href=\"http:\/\/logging.apache.org\/log4j\/1.2\/apidocs\/org\/apache\/log4j\/PatternLayout.html\" title=\"PatternLayout\" target=\"_blank\">PatternLayout<\/a><\/code>, part of the standard <em>log4j<\/em> distribution, lets the user specify the output format according to conversion patterns similar to the <em>C language\u2019s printf function<\/em>. For example, a <em>PatternLayout<\/em> with the conversion pattern <em>&#8220;%r [%t] %-5p %c &#8211; %m%n&#8221;<\/em> will output something akin to:<div style=\"display:inline-block; margin: 15px 0;\"> <div id=\"adngin-JavaCodeGeeks_incontent_video-0\" style=\"display:inline-block;\"><\/div> <\/div><\/p>\n<pre class=\"brush:bash\">\r\n199 [main] INFO com.foo.Bar - Hello there.\r\n<\/pre>\n<p>The first field is the number of milliseconds elapsed since the start of the program. The second field is the thread that executed the log request. The third field is the level of the log statement. The fourth field is the name of the logger associated with the log request. The text after the &#8216;-&#8216; is the message of the statement.<\/p>\n<h3>1.3 log4j \u2013 Configuration scripts<\/h3>\n<p>The <em>log4j<\/em> environment is fully configurable programmatically. However, it is far more flexible to configure <em>log4j<\/em> using <strong>configuration files<\/strong>. Currently, configuration files can be written <em>Java properties (key=value) format or in XML<\/em>.<\/p>\n<p>Let&#8217;s see an example of how easy is to configure <em>appenders<\/em> using a configuration script.<\/p>\n<p><em><span style=\"text-decoration: underline\">log4j.xml<\/span><\/em><\/p>\n<pre class=\"brush:bash; highlight:[6,13,26,27,33,34,40,41]\">\r\n&lt;?xml version=\"1.0\" encoding=\"UTF-8\" ?&gt;\r\n&lt;!DOCTYPE log4j:configuration SYSTEM \"log4j.dtd\"&gt;\r\n&lt;log4j:configuration debug=\"false\" xmlns:log4j=\"http:\/\/jakarta.apache.org\/log4j\/\"&gt;\r\n\r\n\t&lt;!-- Console Appender --&gt;\r\n\t&lt;appender name=\"console\" class=\"org.apache.log4j.ConsoleAppender\"&gt;\r\n\t\t&lt;layout class=\"org.apache.log4j.PatternLayout\"&gt;\r\n\t\t\t&lt;param name=\"ConversionPattern\" value=\"%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n\" \/&gt;\r\n\t\t&lt;\/layout&gt;\r\n\t&lt;\/appender&gt;\r\n\r\n\t&lt;!-- File Appender --&gt;\r\n\t&lt;appender name=\"file\" class=\"org.apache.log4j.RollingFileAppender\"&gt;\r\n\t\t&lt;param name=\"append\" value=\"false\" \/&gt;\r\n\t\t&lt;param name=\"maxFileSize\" value=\"10KB\" \/&gt;\r\n\t\t&lt;param name=\"maxBackupIndex\" value=\"5\" \/&gt;\r\n\t\t&lt;param name=\"file\" value=\"\/Users\/afibarra\/Tmp\/FooBar.log\" \/&gt;\r\n\t\t&lt;layout class=\"org.apache.log4j.PatternLayout\"&gt;\r\n\t\t\t&lt;param name=\"ConversionPattern\" value=\"%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n\" \/&gt;\r\n\t\t&lt;\/layout&gt;\r\n\t&lt;\/appender&gt;\r\n\r\n\t&lt;!-- Foo package --&gt;\r\n\t&lt;logger name=\"com.javacodegeeks.examples.log4jappenders.foo\"&gt;\r\n\t\t&lt;level value=\"INFO\" \/&gt;\r\n\t\t&lt;appender-ref ref=\"console\" \/&gt;\r\n\t\t&lt;appender-ref ref=\"file\" \/&gt;\r\n\t&lt;\/logger&gt;\r\n\r\n\t&lt;!-- Bar package --&gt;\r\n\t&lt;logger name=\"com.javacodegeeks.examples.log4jappenders.bar\"&gt;\r\n\t\t&lt;level value=\"WARN\" \/&gt;\r\n\t\t&lt;appender-ref ref=\"console\" \/&gt;\r\n\t\t&lt;appender-ref ref=\"file\" \/&gt;\r\n\t&lt;\/logger&gt;\r\n\r\n\t&lt;!-- Root logger option --&gt;\r\n\t&lt;root&gt;\r\n\t\t&lt;level value=\"DEBUG\" \/&gt;\t\t\r\n\t\t&lt;appender-ref ref=\"console\" \/&gt;\r\n\t\t&lt;appender-ref ref=\"file\" \/&gt;\r\n\t&lt;\/root&gt;\r\n\r\n&lt;\/log4j:configuration&gt;\r\n<\/pre>\n<p>Here, he have defined two of the most used appenders:<\/p>\n<ul>\n<li><code><a href=\"http:\/\/logging.apache.org\/log4j\/1.2\/apidocs\/org\/apache\/log4j\/ConsoleAppender.html\" title=\"ConsoleAppender\" target=\"_blank\">ConsoleAppender<\/a><\/code> &#8211; <em>ConsoleAppender<\/em> appends log events to <code><a href=\"http:\/\/docs.oracle.com\/javase\/7\/docs\/api\/java\/lang\/System.html#out\" title=\"System.out\" target=\"_blank\">System.out<\/a><\/code> or <code><a href=\"http:\/\/docs.oracle.com\/javase\/7\/docs\/api\/java\/lang\/System.html#err\" title=\"System.err\" target=\"_blank\">System.err<\/a><\/code> using a layout specified by the user. The default target is <em>System.out<\/em>. <\/li>\n<li><code><a href=\"http:\/\/logging.apache.org\/log4j\/1.2\/apidocs\/org\/apache\/log4j\/RollingFileAppender.html\" title=\"RollingFileAppender\" target=\"_blank\">RollingFileAppender<\/a><\/code> &#8211; <em>RollingFileAppender<\/em> extends <code><a href=\"http:\/\/logging.apache.org\/log4j\/1.2\/apidocs\/org\/apache\/log4j\/FileAppender.html\" title=\"FileAppender\" target=\"_blank\">FileAppender<\/a><\/code> to backup the log files when they reach a certain size.<\/li>\n<\/ul>\n<h2>2. Executing some code<\/h2>\n<p><em><span style=\"text-decoration: underline\">FooBean.java<\/span><\/em><\/p>\n<pre class=\"brush:java\">\r\npackage com.javacodegeeks.examples.log4jappenders.foo;\r\n\r\nimport org.apache.log4j.Logger;\r\n\r\npublic class FooBean {\r\n\tprivate static final Logger logger = Logger.getLogger(FooBean.class);\r\n\t\r\n\tpublic void sayHello() {\r\n\t\tlogger.debug(\"Hello there from FooBean class!\");\r\n\t\t\r\n\t\tlogger.info(\"Hello there from FooBean class!\");\r\n\t}\r\n}\r\n<\/pre>\n<p><em><span style=\"text-decoration: underline\">BarBean.java<\/span><\/em><\/p>\n<pre class=\"brush:java\">\r\npackage com.javacodegeeks.examples.log4jappenders.bar;\r\n\r\nimport org.apache.log4j.Logger;\r\n\r\npublic class BarBean {\r\n\tprivate static final Logger logger = Logger.getLogger(BarBean.class);\r\n\r\n\tpublic void sayHello() {\r\n\t\tlogger.info(\"Hello there from BarBean class!\");\r\n\r\n\t\tlogger.warn(\"Hello there from BarBean class!\");\r\n\t}\r\n}\r\n<\/pre>\n<p><em><span style=\"text-decoration: underline\">App.java<\/span><\/em><\/p>\n<pre class=\"brush:java\">\r\npackage com.javacodegeeks.examples.log4jappenders;\r\n\r\nimport org.apache.log4j.Logger;\r\n\r\nimport com.javacodegeeks.examples.log4jappenders.bar.BarBean;\r\nimport com.javacodegeeks.examples.log4jappenders.foo.FooBean;\r\n\r\npublic class App {\r\n\tprivate static final Logger logger = Logger.getLogger(App.class);\r\n\r\n\tpublic static void main(String[] args) {\r\n\t\tFooBean fooBean = new FooBean();\r\n\t\tBarBean barBean = new BarBean();\r\n\r\n\t\tlogger.debug(\"Hello there from App class!\");\r\n\r\n\t\tfooBean.sayHello();\r\n\t\tbarBean.sayHello();\r\n\t}\r\n}\r\n<\/pre>\n<p>The output of the command java com.javacodegeeks.examples.log4jappenders.App should be similar to:<\/p>\n<pre class=\"brush:bash\">\r\n2014-08-16 19:25:48 DEBUG App:15 - Hello there from App class!\r\n2014-08-16 19:25:48 INFO  FooBean:11 - Hello there from FooBean class!\r\n2014-08-16 19:25:48 INFO  FooBean:11 - Hello there from FooBean class!\r\n2014-08-16 19:25:48 WARN  BarBean:11 - Hello there from BarBean class!\r\n2014-08-16 19:25:48 WARN  BarBean:11 - Hello there from BarBean class!\r\n<\/pre>\n<p><figure id=\"attachment_13619\" aria-describedby=\"caption-attachment-13619\" style=\"width: 570px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2014\/08\/2014-08-24_16-52-51_01.jpg\"><img decoding=\"async\" src=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2014\/08\/2014-08-24_16-52-51_01.jpg\" alt=\"RollingFileAppender - Output\" width=\"570\" height=\"451\" class=\"size-full wp-image-13619\" srcset=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2014\/08\/2014-08-24_16-52-51_01.jpg 570w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2014\/08\/2014-08-24_16-52-51_01-300x237.jpg 300w\" sizes=\"(max-width: 570px) 100vw, 570px\" \/><\/a><figcaption id=\"caption-attachment-13619\" class=\"wp-caption-text\">RollingFileAppender &#8211; FooBar.log file<\/figcaption><\/figure><br \/>\n<figure id=\"attachment_13624\" aria-describedby=\"caption-attachment-13624\" style=\"width: 570px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2014\/08\/2014-08-24_18-25-32.jpg\"><img decoding=\"async\" src=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2014\/08\/2014-08-24_18-25-32.jpg\" alt=\"FooBar.log file content\" width=\"570\" height=\"451\" class=\"size-full wp-image-13624\" srcset=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2014\/08\/2014-08-24_18-25-32.jpg 570w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2014\/08\/2014-08-24_18-25-32-300x237.jpg 300w\" sizes=\"(max-width: 570px) 100vw, 570px\" \/><\/a><figcaption id=\"caption-attachment-13624\" class=\"wp-caption-text\">RollingFileAppender &#8211; FooBar.log file content<\/figcaption><\/figure><\/p>\n<h2>3. Download the Eclipse project of this tutorial:<\/h2>\n<p>This was an example of how to set <em>appenders<\/em> for the <em>log4j<\/em> library.<\/p>\n<div class=\"download\"><strong>Download<\/strong><br \/>You can download the full source code of this example here : <a href=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2014\/08\/log4jappenders.zip\"><strong>log4jappenders.zip<\/strong><\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>In this post, we are going to discuss about log4j appenders and how you configure it using an log4j.xml file. 1. What is log4j? log4j is a tool to help the programmer output log statements to a variety of output targets. In case of problems with an application, it is helpful to enable logging so &hellip;<\/p>\n","protected":false},"author":18,"featured_media":13304,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[649],"tags":[],"class_list":["post-13576","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-log4j"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>log4j - Appender Example - Java Code Geeks<\/title>\n<meta name=\"description\" content=\"In this post, we are going to discuss about log4j appenders and how you configure it using an log4j.xml file. 1. What is log4j? log4j is a tool to help\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/log4j\/log4j-appender-example\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"log4j - Appender Example - Java Code Geeks\" \/>\n<meta property=\"og:description\" content=\"In this post, we are going to discuss about log4j appenders and how you configure it using an log4j.xml file. 1. What is log4j? log4j is a tool to help\" \/>\n<meta property=\"og:url\" content=\"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/log4j\/log4j-appender-example\/\" \/>\n<meta property=\"og:site_name\" content=\"Examples Java Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/javacodegeeks\" \/>\n<meta property=\"article:published_time\" content=\"2014-08-26T08:00:13+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2014-09-03T03:19:33+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2014\/08\/apache-log4j-logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Armando Flores\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:site\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Armando Flores\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/log4j\/log4j-appender-example\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/log4j\/log4j-appender-example\/\"},\"author\":{\"name\":\"Armando Flores\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/edd8d967774c2c27aac159acda5ca9fe\"},\"headline\":\"log4j &#8211; Appender Example\",\"datePublished\":\"2014-08-26T08:00:13+00:00\",\"dateModified\":\"2014-09-03T03:19:33+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/log4j\/log4j-appender-example\/\"},\"wordCount\":698,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/log4j\/log4j-appender-example\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2014\/08\/apache-log4j-logo.jpg\",\"articleSection\":[\"Log4j\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/log4j\/log4j-appender-example\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/log4j\/log4j-appender-example\/\",\"url\":\"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/log4j\/log4j-appender-example\/\",\"name\":\"log4j - Appender Example - Java Code Geeks\",\"isPartOf\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/log4j\/log4j-appender-example\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/log4j\/log4j-appender-example\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2014\/08\/apache-log4j-logo.jpg\",\"datePublished\":\"2014-08-26T08:00:13+00:00\",\"dateModified\":\"2014-09-03T03:19:33+00:00\",\"description\":\"In this post, we are going to discuss about log4j appenders and how you configure it using an log4j.xml file. 1. What is log4j? log4j is a tool to help\",\"breadcrumb\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/log4j\/log4j-appender-example\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/log4j\/log4j-appender-example\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/log4j\/log4j-appender-example\/#primaryimage\",\"url\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2014\/08\/apache-log4j-logo.jpg\",\"contentUrl\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2014\/08\/apache-log4j-logo.jpg\",\"width\":150,\"height\":150},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/log4j\/log4j-appender-example\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/examples.javacodegeeks.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Java Development\",\"item\":\"https:\/\/examples.javacodegeeks.com\/category\/java-development\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Enterprise Java\",\"item\":\"https:\/\/examples.javacodegeeks.com\/category\/java-development\/enterprise-java\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Log4j\",\"item\":\"https:\/\/examples.javacodegeeks.com\/category\/java-development\/enterprise-java\/log4j\/\"},{\"@type\":\"ListItem\",\"position\":5,\"name\":\"log4j &#8211; Appender Example\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#website\",\"url\":\"https:\/\/examples.javacodegeeks.com\/\",\"name\":\"Java Code Geeks\",\"description\":\"Java Examples and Code Snippets\",\"publisher\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/#organization\"},\"alternateName\":\"JCG\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/examples.javacodegeeks.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\/\/examples.javacodegeeks.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"contentUrl\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/javacodegeeks\",\"https:\/\/x.com\/javacodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/edd8d967774c2c27aac159acda5ca9fe\",\"name\":\"Armando Flores\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2014\/05\/Armando-Flores-96x96.jpg\",\"contentUrl\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2014\/05\/Armando-Flores-96x96.jpg\",\"caption\":\"Armando Flores\"},\"description\":\"Armando graduated from from Electronics Engineer in the The Public University Of Puebla (BUAP). He also has a Masters degree in Computer Sciences from CINVESTAV. He has been using the Java language for Web Development for over a decade. He has been involved in a large number of projects focused on \\\"ad-hoc\\\" Web Application based on Java EE and Spring Framework.\",\"sameAs\":[\"http:\/\/www.javacodegeeks.com\/\"],\"url\":\"https:\/\/examples.javacodegeeks.com\/author\/armando-flores\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"log4j - Appender Example - Java Code Geeks","description":"In this post, we are going to discuss about log4j appenders and how you configure it using an log4j.xml file. 1. What is log4j? log4j is a tool to help","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/log4j\/log4j-appender-example\/","og_locale":"en_US","og_type":"article","og_title":"log4j - Appender Example - Java Code Geeks","og_description":"In this post, we are going to discuss about log4j appenders and how you configure it using an log4j.xml file. 1. What is log4j? log4j is a tool to help","og_url":"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/log4j\/log4j-appender-example\/","og_site_name":"Examples Java Code Geeks","article_publisher":"https:\/\/www.facebook.com\/javacodegeeks","article_published_time":"2014-08-26T08:00:13+00:00","article_modified_time":"2014-09-03T03:19:33+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2014\/08\/apache-log4j-logo.jpg","type":"image\/jpeg"}],"author":"Armando Flores","twitter_card":"summary_large_image","twitter_creator":"@javacodegeeks","twitter_site":"@javacodegeeks","twitter_misc":{"Written by":"Armando Flores","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/log4j\/log4j-appender-example\/#article","isPartOf":{"@id":"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/log4j\/log4j-appender-example\/"},"author":{"name":"Armando Flores","@id":"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/edd8d967774c2c27aac159acda5ca9fe"},"headline":"log4j &#8211; Appender Example","datePublished":"2014-08-26T08:00:13+00:00","dateModified":"2014-09-03T03:19:33+00:00","mainEntityOfPage":{"@id":"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/log4j\/log4j-appender-example\/"},"wordCount":698,"commentCount":0,"publisher":{"@id":"https:\/\/examples.javacodegeeks.com\/#organization"},"image":{"@id":"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/log4j\/log4j-appender-example\/#primaryimage"},"thumbnailUrl":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2014\/08\/apache-log4j-logo.jpg","articleSection":["Log4j"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/log4j\/log4j-appender-example\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/log4j\/log4j-appender-example\/","url":"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/log4j\/log4j-appender-example\/","name":"log4j - Appender Example - Java Code Geeks","isPartOf":{"@id":"https:\/\/examples.javacodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/log4j\/log4j-appender-example\/#primaryimage"},"image":{"@id":"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/log4j\/log4j-appender-example\/#primaryimage"},"thumbnailUrl":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2014\/08\/apache-log4j-logo.jpg","datePublished":"2014-08-26T08:00:13+00:00","dateModified":"2014-09-03T03:19:33+00:00","description":"In this post, we are going to discuss about log4j appenders and how you configure it using an log4j.xml file. 1. What is log4j? log4j is a tool to help","breadcrumb":{"@id":"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/log4j\/log4j-appender-example\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/log4j\/log4j-appender-example\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/log4j\/log4j-appender-example\/#primaryimage","url":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2014\/08\/apache-log4j-logo.jpg","contentUrl":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2014\/08\/apache-log4j-logo.jpg","width":150,"height":150},{"@type":"BreadcrumbList","@id":"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/log4j\/log4j-appender-example\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/examples.javacodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"Java Development","item":"https:\/\/examples.javacodegeeks.com\/category\/java-development\/"},{"@type":"ListItem","position":3,"name":"Enterprise Java","item":"https:\/\/examples.javacodegeeks.com\/category\/java-development\/enterprise-java\/"},{"@type":"ListItem","position":4,"name":"Log4j","item":"https:\/\/examples.javacodegeeks.com\/category\/java-development\/enterprise-java\/log4j\/"},{"@type":"ListItem","position":5,"name":"log4j &#8211; Appender Example"}]},{"@type":"WebSite","@id":"https:\/\/examples.javacodegeeks.com\/#website","url":"https:\/\/examples.javacodegeeks.com\/","name":"Java Code Geeks","description":"Java Examples and Code Snippets","publisher":{"@id":"https:\/\/examples.javacodegeeks.com\/#organization"},"alternateName":"JCG","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/examples.javacodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/examples.javacodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/examples.javacodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/examples.javacodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/examples.javacodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/javacodegeeks","https:\/\/x.com\/javacodegeeks"]},{"@type":"Person","@id":"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/edd8d967774c2c27aac159acda5ca9fe","name":"Armando Flores","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/image\/","url":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2014\/05\/Armando-Flores-96x96.jpg","contentUrl":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2014\/05\/Armando-Flores-96x96.jpg","caption":"Armando Flores"},"description":"Armando graduated from from Electronics Engineer in the The Public University Of Puebla (BUAP). He also has a Masters degree in Computer Sciences from CINVESTAV. He has been using the Java language for Web Development for over a decade. He has been involved in a large number of projects focused on \"ad-hoc\" Web Application based on Java EE and Spring Framework.","sameAs":["http:\/\/www.javacodegeeks.com\/"],"url":"https:\/\/examples.javacodegeeks.com\/author\/armando-flores\/"}]}},"_links":{"self":[{"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/13576","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/users\/18"}],"replies":[{"embeddable":true,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/comments?post=13576"}],"version-history":[{"count":0,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/13576\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/media\/13304"}],"wp:attachment":[{"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/media?parent=13576"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/categories?post=13576"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/tags?post=13576"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}