{"id":5413,"date":"2023-09-26T07:56:53","date_gmt":"2023-09-26T06:56:53","guid":{"rendered":"https:\/\/www.baeldung.com\/java-log4j-properties-guide"},"modified":"2023-09-26T07:56:53","modified_gmt":"2023-09-26T06:56:53","slug":"a-guide-to-log4j-and-the-log4j-properties-file-in-java","status":"publish","type":"post","link":"https:\/\/gamefootballmobileanimeiphone.com\/index.php\/2023\/09\/26\/a-guide-to-log4j-and-the-log4j-properties-file-in-java\/","title":{"rendered":"A Guide to Log4j and the log4j.properties File in Java"},"content":{"rendered":"<p><img src=\"https:\/\/www.baeldung.com\/wp-content\/uploads\/2021\/09\/Java-8-Featured-1024x536.png\" class=\"webfeedsFeaturedVisual wp-post-image\" alt=\"\" decoding=\"async\" style=\"float: left; margin-right: 5px;\" loading=\"lazy\" srcset=\"https:\/\/www.baeldung.com\/wp-content\/uploads\/2021\/09\/Java-8-Featured-1024x536.png 1024w, https:\/\/www.baeldung.com\/wp-content\/uploads\/2021\/09\/Java-8-Featured-300x157.png 300w, https:\/\/www.baeldung.com\/wp-content\/uploads\/2021\/09\/Java-8-Featured-768x402.png 768w, https:\/\/www.baeldung.com\/wp-content\/uploads\/2021\/09\/Java-8-Featured-100x52.png 100w, https:\/\/www.baeldung.com\/wp-content\/uploads\/2021\/09\/Java-8-Featured.png 1200w\" sizes=\"(max-width: 580px) 100vw, 580px\" \/><\/p>\n<h2 id=\"bd-introduction\" data-id=\"introduction\">1. Introduction<\/h2>\n<div class=\"bd-anchor\" id=\"introduction\"><\/div>\n<p>Log4J is a popular, open-source <a href=\"https:\/\/feeds.feedblitz.com\/~\/t\/0\/0\/baeldung\/~https:\/\/www.baeldung.com\/java-logging-intro\">logging framework<\/a> written in Java. Various Java-based applications widely use Log4j. Moreover, it&#8217;s thread-safe, fast, and provides a named <em>Logger<\/em> hierarchy. Log4j is distributed under the open-source Apache Software License.<\/p>\n<p><strong>Log4j 1.x reached the end of life on August 5, 2015. Therefore, as of today, <a href=\"https:\/\/feeds.feedblitz.com\/~\/t\/0\/0\/baeldung\/~https:\/\/www.baeldung.com\/log4j2-appenders-layouts-filters\">Log4j2<\/a> is the latest upgrade to Log4j.<\/strong><\/p>\n<p>In this tutorial, we&#8217;ll learn about Log4j and how to configure the core Log4j components using the <em>log4j.properties<\/em> file in Java.<\/p>\n<h2  data-id=\"setup\" id=\"bd-bd-setup\" data-id=\"bd-setup\">2. Maven Setup<\/h2>\n<div class=\"bd-anchor\" id=\"bd-setup\"><\/div>\n<p>We&#8217;ll need the <em>log4j-core<\/em>\u00a0dependency in our\u00a0<em>pom.xml<\/em> to start with:<\/p>\n<pre><code class=\"language-java\">&lt;dependency&gt;\r\n    &lt;groupId&gt;org.apache.logging.log4j&lt;\/groupId&gt;\r\n    &lt;artifactId&gt;log4j-api&lt;\/artifactId&gt;\r\n    &lt;version&gt;1.2.17&lt;\/version&gt;\r\n&lt;\/dependency&gt;<\/code><\/pre>\n<p>The latest version of <em>log4j-core\u00a0<\/em>can be found\u00a0<a href=\"https:\/\/feeds.feedblitz.com\/~\/t\/0\/0\/baeldung\/~https:\/\/mvnrepository.com\/artifact\/log4j\/log4j\">here<\/a>.<\/p>\n<h2 id=\"bd-the-log4j-api\" data-id=\"the-log4j-api\">3. The Log4j API<\/h2>\n<div class=\"bd-anchor\" id=\"the-log4j-api\"><\/div>\n<p>The Log4j API provides the mechanism to pass on the logging information based on various levels of priorities and direct it to various destinations such as files, consoles, databases, etc. It also supports filtering log events before passing them to <em>logger<\/em>s or <a href=\"https:\/\/feeds.feedblitz.com\/~\/t\/0\/0\/baeldung\/~https:\/\/www.baeldung.com\/log4j2-appenders-layouts-filters\"><em>appender<\/em>s<\/a>.<\/p>\n<p>The Log4j API has a layered architecture that provides two types of objects in the Log4j framework &#8211; core objects and support objects.<\/p>\n<h2 id=\"bd-log4j-components\" data-id=\"log4j-components\">4. Log4j Components<\/h2>\n<div class=\"bd-anchor\" id=\"log4j-components\"><\/div>\n<p>There are three main components of Log4j &#8211; <em>logger<\/em>s, <em>appender<\/em>s, and <em>layout<\/em>s &#8211; that could be used together to print the customized log statements at the desired destinations. Let&#8217;s look at them in brief.<\/p>\n<h3 id=\"bd-1-logger\" data-id=\"1-logger\">4.1. <em>Logger<\/em><\/h3>\n<div class=\"bd-anchor\" id=\"1-logger\"><\/div>\n<p>The <em>Logger<\/em> object is responsible for representing the logging information. It&#8217;s the first mandatory layer in Log4j architecture. The <em>Logger<\/em> class is defined in package <em>org.apache.log4j<\/em>.<\/p>\n<p>Generally,<strong> we create one <em>Logger<\/em> instance per application class to log important events belonging to that class<\/strong>. Also, we generally create this instance at the beginning of the class using a static factory method that accepts the class name as a parameter:<\/p>\n<pre><code class=\"language-java\">private static final Logger logger = Logger.getLogger(JavaClass.class.getName());<\/code><\/pre>\n<p>Subsequently, we can use various methods of the <em>Logger<\/em> class to log or print important events depending on their categories. These methods are <em>trace()<\/em>, <em>debug()<\/em>, <em>info()<\/em>, <em>warn()<\/em>, <em>error()<\/em>, <em>fatal()<\/em>. These methods determine the level of a logging request.<\/p>\n<p>The priority order of the <em>Logger<\/em> methods is: <em>TRACE<\/em> &lt; <em>DEBUG<\/em> &lt; <em>INFO<\/em> &lt; <em>WARN<\/em> &lt; <em>ERROR<\/em> &lt; <em>FATAL<\/em>. Therefore, these methods print the log messages depending on the <em>logger<\/em> level set in the <em>log4j.properties<\/em> file. This means if we set the <em>logger<\/em> level as <em>INFO<\/em>, then all the <em>INFO<\/em>, <em>WARN<\/em>, <em>ERROR<\/em>, and <em>FATAL<\/em> events will be logged.<\/p>\n<h3 id=\"bd-2-appender\" data-id=\"2-appender\">4.2. <em>Appender<\/em><\/h3>\n<div class=\"bd-anchor\" id=\"2-appender\"><\/div>\n<p><em>Appender<\/em> denotes the destination of log output. We can print the log out to multiple preferred destinations using Log4j like console, files, remote socket server, database, etc. We refer to these output destinations as <em>Appender<\/em>s. Moreover, we can attach multiple <em>appender<\/em>s to a <em>Logger<\/em>.<\/p>\n<p><em>Appender<\/em>s work according to the <a href=\"https:\/\/feeds.feedblitz.com\/~\/t\/0\/0\/baeldung\/~https:\/\/logging.apache.org\/log4j\/1.2\/manual.html\"><em>appender<\/em> additivity rule<\/a>. <strong>This rule states that the output of a log statement of any <em>Logger<\/em> will go to all of its <em>appender<\/em>s and its ancestors &#8211;<\/strong> <b>the <em>appender<\/em>s that are higher in the hierarchy<\/b>.<\/p>\n<p>Log4j has multiple <em>appender<\/em>s defined for files, consoles, GUI components, remote socket servers, JMS, etc.<\/p>\n<h3 id=\"bd-3-layout\" data-id=\"3-layout\">4.3. <em>Layout<\/em><\/h3>\n<div class=\"bd-anchor\" id=\"3-layout\"><\/div>\n<p>We use <em>layout<\/em>s for customizing the format of the log statements. We can do this by associating a <em>layout<\/em> with the already defined <em>appender<\/em>. Thus, a combination of <em>layout<\/em> and <em>appender<\/em>s helps us send the formatted log statements to the desired destinations.<\/p>\n<p>We can specify the format of log statements using conversion patterns. <strong>The class <a href=\"https:\/\/feeds.feedblitz.com\/~\/t\/0\/0\/baeldung\/~https:\/\/logging.apache.org\/log4j\/1.2\/apidocs\/org\/apache\/log4j\/PatternLayout.html\"><em>PatternLayout<\/em><\/a> explains more about conversion characters that we can use based on our needs.<\/strong><\/p>\n<p>We&#8217;ll also understand about few of the conversion characters through examples in the following sections.<\/p>\n<h2 id=\"bd-the-log4jproperties-file\" data-id=\"the-log4jproperties-file\">5. The <em>log4j.properties<\/em> File<\/h2>\n<div class=\"bd-anchor\" id=\"the-log4jproperties-file\"><\/div>\n<p>We can configure Log4j using XML or the properties file. The <em>log4j.properties<\/em> file stores the configurations in key-value pairs.<\/p>\n<p>The default name of the log4j properties configuration file is <em>log4j.properties<\/em>. The <em>Logger<\/em> looks for this file name in the <em><a href=\"https:\/\/feeds.feedblitz.com\/~\/t\/0\/0\/baeldung\/~https:\/\/www.baeldung.com\/java-classpath-vs-build-path\">CLASSPATH<\/a><\/em>. However, <strong>if we need to use a different configuration file name, we can set it using the system property <em>log4j.configuration<\/em>.<\/strong><\/p>\n<p>The <em>log4j.properties<\/em> file contains the specifications of <em>appender<\/em>s, their names and types, and <em>layout<\/em> patterns. It also contains specifications about the default <em>root Logger<\/em> and its log levels.<\/p>\n<h2 id=\"bd-syntax-of-the-log4jproperties-file\" data-id=\"syntax-of-the-log4jproperties-file\">6. Syntax of the <em>log4j.properties<\/em> File<\/h2>\n<div class=\"bd-anchor\" id=\"syntax-of-the-log4jproperties-file\"><\/div>\n<p>In a general <em>log4j.properties<\/em> file, we define the following configurations:<\/p>\n<ul>\n<li>The <em>root logger<\/em> and its level. We also provide a name for the <em>appender<\/em> here.<\/li>\n<li>Then, we assign a valid <em>appender<\/em> to the defined appender name.<\/li>\n<li>Finally, we define the <em>layout<\/em>, target, level, etc., for the defined <em>appender<\/em>.<\/li>\n<\/ul>\n<p>Let&#8217;s see the syntax of a general log4.properties file:<\/p>\n<pre><code class=\"language-properties\"># The root logger with appender name \r\nlog4j.rootLogger = DEBUG, NAME\r\n  \r\n# Assign NAME a valid appender  \r\nlog4j.appender.NAME = org.apache.log4j.FileAppender\r\n# Define the layout for NAME\r\nlog4j.appender.NAME.layout=org.apache.log4j.PatternLayout  \r\nlog4j.appender.NAME.layout.conversionPattern=%m%n  <\/code><\/pre>\n<p>Here, <em>NAME<\/em> is the name of the <em>Appender<\/em>. As discussed earlier, <strong>we can attach multiple <em>appender<\/em>s to a <em>Logger<\/em> to direct logs to different destinations.<\/strong><\/p>\n<h2 id=\"bd-examples\" data-id=\"examples\">7. Examples<\/h2>\n<div class=\"bd-anchor\" id=\"examples\"><\/div>\n<p>Now, let&#8217;s understand the <em>log4j.properties<\/em> file configurations for different <em>appender<\/em>s with the help of some examples.<\/p>\n<h3 id=\"bd-1-sample-program\" data-id=\"1-sample-program\">7.1. Sample Program<\/h3>\n<div class=\"bd-anchor\" id=\"1-sample-program\"><\/div>\n<p>Let&#8217;s start with an example application that logs some messages:<\/p>\n<pre><code class=\"language-java\">import org.apache.log4j.Logger;\r\npublic class Log4jExample {\r\n    private static Logger logger = Logger.getLogger(Log4jExample.class);\r\n    public static void main(String[] args) throws InterruptedException {\r\n        for(int i = 1; i &lt;= 2000; i++) {\r\n            logger.info(&quot;This is the &quot; + i + &quot; time I say &#039;Hello World&#039;.&quot;);\r\n            Thread.sleep(100);\r\n        }\r\n    }\r\n}<\/code><\/pre>\n<p>The application is a simple one &#8211; it writes some messages in a loop, with a short delay between iterations. It has 2,000 iterations, and there&#8217;s a pause of 100 ms in each iteration. Therefore, it should take around three and a half minutes to finish the execution. We&#8217;ll use this application in our examples below.<\/p>\n<h3 id=\"bd-2-console-logging\" data-id=\"2-console-logging\">7.2. Console Logging<\/h3>\n<div class=\"bd-anchor\" id=\"2-console-logging\"><\/div>\n<p>The console is the default place for logging messages if no configuration file is located. Let&#8217;s create a <em>log4j.properties<\/em> configuration for <em>ConsoleAppender<\/em> with the <em>root logger<\/em> and also define the logging level for it:<\/p>\n<pre><code class=\"language-properties\"># Root Logger\r\nlog4j.rootLogger=INFO, stdout\r\n# Direct log messages to stdout\r\nlog4j.appender.stdout=org.apache.log4j.ConsoleAppender\r\nlog4j.appender.stdout.Target=System.out\r\nlog4j.appender.stdout.layout=org.apache.log4j.PatternLayout\r\nlog4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n\r\n<\/code><\/pre>\n<p>Here, we&#8217;ve defined a <em>log4j.properties<\/em> file with the following specifications:<\/p>\n<ul>\n<li>We&#8217;ve defined the level of the <em>root logger<\/em> as <em>INFO<\/em>. This means that all the log events with level <em>INFO<\/em> and above will be logged. We&#8217;ve also defined a name for the <em>appender<\/em> as <em>stdout<\/em>.<\/li>\n<li>Since we want to direct the logs to the console, we assigned the <em>Appender<\/em> as <em>org.apache.log4j.ConsoleAppender<\/em> and the target as <em>System.out<\/em>.<\/li>\n<li>Finally, we&#8217;ve specified the format for <em>PatternLayout<\/em> in which we want to print the logs using <em>ConversionPattern<\/em>.<\/li>\n<\/ul>\n<p>Let&#8217;s also understand the meaning of each of the conversion characters in the <em>ConversionPattern<\/em> that we&#8217;ve used:<\/p>\n<ul>\n<li><em>%d<\/em> adds the timestamp in the defined format.<\/li>\n<li><em>%-5p<\/em> adds the log-level information to each log statement. It signifies that the priority of the logging event should be left justified to a width of five characters.<\/li>\n<li><em>%c{1}<\/em> prints the qualified class name, optionally followed by package names (precision qualifier)<em>, <\/em>that is, logging the specific log statement.<\/li>\n<li><em>%L<\/em> prints the line number of the specific log event.<\/li>\n<li><em>%m<\/em> prints the actual log message.<\/li>\n<li><em>%n<\/em> adds a new line\u00a0after every log statement.<\/li>\n<\/ul>\n<p>Thus, when we run our sample application, we get the following lines printed on the console:<\/p>\n<pre><code class=\"language-java\">2023-08-01 00:27:25 INFO Log4jExample:15 - This is the 1 time I say &#039;Hello World&#039;.\r\n...\r\n...\r\n2023-08-01 00:27:25 INFO Log4jExample:15 - This is the 2000 time I say &#039;Hello World&#039;.\r\n<\/code><\/pre>\n<p><strong>The documentation for the <a href=\"https:\/\/feeds.feedblitz.com\/~\/t\/0\/0\/baeldung\/~https:\/\/logging.apache.org\/log4j\/1.2\/apidocs\/org\/apache\/log4j\/PatternLayout.html\"><em>PatternLayout<\/em><\/a> class explains more about conversion characters that we can use based on our needs.<\/strong><\/p>\n<h3 id=\"bd-3-multiple-destinations\" data-id=\"3-multiple-destinations\">7.3. Multiple Destinations<\/h3>\n<div class=\"bd-anchor\" id=\"3-multiple-destinations\"><\/div>\n<p>As discussed earlier, we can redirect the log events to multiple destinations:<\/p>\n<pre><code class=\"language-properties\"># Root logger  \r\nlog4j.rootLogger=INFO, file, stdout  \r\n  \r\n# Direct to a file\r\nlog4j.appender.file=org.apache.log4j.RollingFileAppender  \r\nlog4j.appender.file.File=C:\\\\Baeldung\\\\app.log  \r\nlog4j.appender.file.MaxFileSize=5KB  \r\nlog4j.appender.file.MaxBackupIndex=2  \r\nlog4j.appender.file.layout=org.apache.log4j.PatternLayout  \r\nlog4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n  \r\n   \r\n# Direct to console\r\nlog4j.appender.stdout=org.apache.log4j.ConsoleAppender  \r\nlog4j.appender.stdout.Target=System.out  \r\nlog4j.appender.stdout.layout=org.apache.log4j.PatternLayout  \r\nlog4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n  <\/code><\/pre>\n<p>Here, we&#8217;ve used two <em>appender<\/em>s to redirect the log messages to both the file and console. Also, we&#8217;ve assigned a <a href=\"https:\/\/feeds.feedblitz.com\/~\/t\/0\/0\/baeldung\/~https:\/\/www.baeldung.com\/java-logging-rolling-file-appenders\"><em>RollingFileAppender<\/em><\/a> to our file <em>Appender<\/em>. We use a <em>RollingFileAppender<\/em> when we know that the log files may grow in size over time.<\/p>\n<p>In our example above, <strong>we&#8217;ve used <em>RollingFileAppender,<\/em> which rolls the log files based on both size and the count of log files using the <em>MaxFileSize<\/em> and the\u00a0<em>MaxBackupIndex<\/em> parameters.<\/strong> Thus, the log file will roll when its size reaches 5KB, and we&#8217;ll keep a maximum of two rolled log files as backup.<\/p>\n<p>When we run our sample application, we obtain the following files containing the same log statements as in the previous example:<\/p>\n<pre class=\"hljs-copy-wrapper\"><code class=\"language-plaintext hljs\">31\/01\/2023  10:28    138 app.log\r\n31\/01\/2023  10:28  5.281 app.log.1\r\n31\/01\/2023  10:28  5.281 app.log.2<\/code><\/pre>\n<p>We can find a detailed explanation of the execution in our examples on <a href=\"https:\/\/feeds.feedblitz.com\/~\/t\/0\/0\/baeldung\/~https:\/\/www.baeldung.com\/java-logging-rolling-file-appenders#2-rolling-based-on-file-size\">rolling log files based on size<\/a>.<\/p>\n<h2 id=\"bd-conclusion\" data-id=\"conclusion\">8. Conclusion<\/h2>\n<div class=\"bd-anchor\" id=\"conclusion\"><\/div>\n<p>In this article, we&#8217;ve explored Log4j and its three components &#8211; <em>logger<\/em>s, <em>appender<\/em>s, and <em>layout<\/em>s. We&#8217;ve also understood the syntax of a <em>log4j.properties<\/em> file and some simple examples of configuring a <em>log4j.properties<\/em> file.<\/p>\n<p>As always, the examples that accompany the article are available <a href=\"https:\/\/feeds.feedblitz.com\/~\/t\/0\/0\/baeldung\/~https:\/\/github.com\/eugenp\/tutorials\/tree\/master\/logging-modules\/log4j\">over on GitHub<\/a>.<\/p>\n<p><Img align=\"left\" border=\"0\" height=\"1\" width=\"1\" alt=\"\" style=\"border:0;float:left;margin:0;padding:0;width:1px!important;height:1px!important;\" hspace=\"0\" src=\"https:\/\/feeds.feedblitz.com\/~\/i\/795382517\/0\/baeldung\"><\/p>\n<div style=\"clear:both;padding-top:0.2em;\"><a title=\"Like on Facebook\" href=\"https:\/\/feeds.feedblitz.com\/_\/28\/795382517\/baeldung\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/fblike20.png\" style=\"border:0;margin:0;padding:0;\"><\/a>&#160;<a title=\"Pin it!\" href=\"https:\/\/feeds.feedblitz.com\/_\/29\/795382517\/baeldung,https%3A%2F%2Fwww.baeldung.com%2Fwp-content%2Fuploads%2F2021%2F09%2FJava-8-Featured-1024x536.png\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/pinterest20.png\" style=\"border:0;margin:0;padding:0;\"><\/a>&#160;<a title=\"Tweet This\" href=\"https:\/\/feeds.feedblitz.com\/_\/24\/795382517\/baeldung\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/twitter20.png\" style=\"border:0;margin:0;padding:0;\"><\/a>&#160;<a title=\"Subscribe by email\" href=\"https:\/\/feeds.feedblitz.com\/_\/19\/795382517\/baeldung\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/email20.png\" style=\"border:0;margin:0;padding:0;\"><\/a>&#160;<a title=\"Subscribe by RSS\" href=\"https:\/\/feeds.feedblitz.com\/_\/20\/795382517\/baeldung\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/rss20.png\" style=\"border:0;margin:0;padding:0;\"><\/a>&#160;<a rel=\"NOFOLLOW\" title=\"View Comments\" href=\"https:\/\/www.baeldung.com\/java-log4j-properties-guide#respond\"><img decoding=\"async\" height=\"20\" style=\"border:0;margin:0;padding:0;\" src=\"https:\/\/assets.feedblitz.com\/i\/comments20.png\"><\/a>&#160;<a title=\"Follow Comments via RSS\" href=\"https:\/\/www.baeldung.com\/java-log4j-properties-guide\/feed\"><img decoding=\"async\" height=\"20\" style=\"border:0;margin:0;padding:0;\" src=\"https:\/\/assets.feedblitz.com\/i\/commentsrss20.png\"><\/a>&#160;<\/div>\n\n<h2><b>Commercials Cooperation Advertisements:<\/b><\/h2>\r\n<p><br>(1) IT Teacher IT Freelance<br> <\/p>\r\n<a href=https:\/\/itteacheritfreelance.hk\/wordpress><img src=http:\/\/gamefootballmobileanimeiphone.com\/wp-content\/uploads\/2023\/09\/ITTeacherITFreelance-Website.png alt=IT\u96fb\u8166\u88dc\u7fd2 java\u88dc\u7fd2 \u70ba\u5927\u5bb6\u914d\u5c0d\u96fb\u8166\u88dc\u7fd2,IT freelance, \u79c1\u4eba\u8001\u5e2b, PHP\u88dc\u7fd2,CSS\u88dc\u7fd2,XML,Java\u88dc\u7fd2,MySQL\u88dc\u7fd2,graphic design\u88dc\u7fd2,\u4e2d\u5c0f\u5b78ICT\u88dc\u7fd2,\u4e00\u5c0d\u4e00\u79c1\u4eba\u88dc\u7fd2\u548cFreelance\u81ea\u7531\u5de5\u4f5c\u914d\u5c0d\u3002\/><\/a><p><a href=https:\/\/itteacheritfreelance.hk\/wordpress\/index.php\/findteacher>\u7acb\u523b\u8a3b\u518a\u53ca\u5831\u540d\u96fb\u8166\u88dc\u7fd2\u8ab2\u7a0b\u5427! <\/a><br>\r\n\r\n\u7535\u5b50\u8ba1\u7b97\u673a -\u6559\u80b2 -IT \u96fb\u8166\u73ed\u201d ( IT\u96fb\u8166\u88dc\u7fd2 ) \u63d0\u4f9b\u4e00\u500b\u65b9\u4fbf\u7684\u7535\u5b50\u8ba1\u7b97\u673a \u6559\u80b2\u5e73\u53f0, \u70ba\u5927\u5bb6\u914d\u5c0d\u4fe1\u606f\u6280\u672f, \u96fb\u8166 \u8001\u5e2b, IT freelance \u548c programming expert. \u8b93\u5927\u5bb6\u65b9\u4fbf\u5730\u5c31\u80fd\u627e\u5230\u5408\u9069\u7684\u96fb\u8166\u88dc\u7fd2, \u96fb\u8166\u73ed, \u5bb6\u6559, \u79c1\u4eba\u8001\u5e2b.  <br>\r\n\r\nWe are a education and information platform which you can find a IT private tutorial teacher or freelance. <br>\r\n\r\nAlso we provide different information about information technology, Computer, programming, mobile, Android, apple, game, movie, anime, animation\u2026 \r\n<\/p>\n<p><br>(2) ITSec<br> <\/p><a href=https:\/\/itsec.vip><img src=http:\/\/gamefootballmobileanimeiphone.com\/wp-content\/uploads\/2023\/09\/ITSec-Main-Promotion-Image.png alt= https:\/\/itsec.vip\/\r\nSecure Your Computers from Cyber Threats and mitigate risks with professional services to defend Hackers.  \r\nITSec provide IT Security and Compliance Services, including IT Compliance Services, Risk Assessment, IT Audit, Security Assessment and Audit, ISO 27001 Consulting and Certification, GDPR Compliance Services, Privacy Impact Assessment (PIA), Penetration test, Ethical Hacking, Vulnerabilities scan, IT Consulting, Data Privacy Consulting, Data Protection Services, Information Security Consulting, Cyber Security Consulting, Network Security Audit, Security Awareness Training.\/><\/a> \r\n<br><br> \r\n<p><a href=https:\/\/itsec.vip>www.ITSec.vip<\/a> <br> <br> \r\n<p><a href=https:\/\/sraa.com.hk>www.Sraa.com.hk<\/a> <br> <br> \r\n<p><a href=https:\/\/itsec.hk>www.ITSec.hk<\/a> <br> <br> \r\n<p><a href=https:\/\/penetrationtest.hk>www.Penetrationtest.hk<\/a> <br> <br> \r\n<p><a href=https:\/\/itseceu.uk>www.ITSeceu.uk<\/a> <br> <br> \r\nSecure Your Computers from Cyber Threats and mitigate risks with professional services to defend Hackers. <br><br>\r\nITSec provide IT Security and Compliance Services, including IT Compliance Services, Risk Assessment, IT Audit, Security Assessment and Audit, ISO 27001 Consulting and Certification, GDPR Compliance Services, Privacy Impact Assessment (PIA), Penetration test, Ethical Hacking, Vulnerabilities scan, IT Consulting, Data Privacy Consulting, Data Protection Services, Information Security Consulting, Cyber Security Consulting, Network Security Audit, Security Awareness Training. \r\n<br><br>Contact us right away. <br><br>Email (Prefer using email to contact us): <br>SalesExecutive@ITSec.vip<\/p>","protected":false},"excerpt":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/www.baeldung.com\/wp-content\/uploads\/2021\/09\/Java-8-Featured-1024x536.png\" class=\"webfeedsFeaturedVisual wp-post-image\" alt=\"\" loading=\"lazy\"><\/p>\n<p>Learn about Log4j and how to configure the core components using the log4j.properties file in Java.<\/p>\n<div><a title=\"Like on Facebook\" href=\"https:\/\/feeds.feedblitz.com\/_\/28\/795382517\/baeldung\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/fblike20.png\"><\/a>\u00a0<a title=\"Pin it!\" href=\"https:\/\/feeds.feedblitz.com\/_\/29\/795382517\/baeldung,https%3A%2F%2Fwww.baeldung.com%2Fwp-content%2Fuploads%2F2021%2F09%2FJava-8-Featured-1024x536.png\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/pinterest20.png\"><\/a>\u00a0<a title=\"Tweet This\" href=\"https:\/\/feeds.feedblitz.com\/_\/24\/795382517\/baeldung\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/twitter20.png\"><\/a>\u00a0<a title=\"Subscribe by email\" href=\"https:\/\/feeds.feedblitz.com\/_\/19\/795382517\/baeldung\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/email20.png\"><\/a>\u00a0<a title=\"Subscribe by RSS\" href=\"https:\/\/feeds.feedblitz.com\/_\/20\/795382517\/baeldung\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/rss20.png\"><\/a>\u00a0<a rel=\"NOFOLLOW\" title=\"View Comments\" href=\"https:\/\/www.baeldung.com\/java-log4j-properties-guide#respond\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/comments20.png\"><\/a>\u00a0<a title=\"Follow Comments via RSS\" href=\"https:\/\/www.baeldung.com\/java-log4j-properties-guide\/feed\"><img decoding=\"async\" height=\"20\" src=\"https:\/\/assets.feedblitz.com\/i\/commentsrss20.png\"><\/a>\u00a0<\/div>\n","protected":false},"author":256,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"site-container-style":"default","site-container-layout":"default","site-sidebar-layout":"default","disable-article-header":"default","disable-site-header":"default","disable-site-footer":"default","disable-content-area-spacing":"default","footnotes":""},"categories":[22],"tags":[61,122,127,129,124,128,125,132,131,133,126,130,123,66,94,88,97,56,64,65,60,112,40,75,95,104,33,120,105,101,98,115,30,29,41,86,70,69,68,72,71,26,118,108,87,46,55,48,52,54,51,50,83,62,58,57,109,2473,2472,35,59,63,85,79,82,96,80,27,81,114,44,42,43,45,38,39,110,117,100,111,116,73,89,90,92,91,93,84,78,37,102,34,36,77,67,74,99,113,119,28,121,32,47,49,53,103,31,76],"class_list":["post-5413","post","type-post","status-publish","format-standard","hentry","category-mobile","tag-airpods","tag-anime","tag-anime-characters","tag-anime-cosplay","tag-anime-edits","tag-anime-merchandise","tag-anime-movies","tag-anime-news","tag-anime-recommendations","tag-anime-reviews","tag-anime-series","tag-anime-streaming","tag-animes","tag-app-store","tag-app-store-samsung","tag-appgallery","tag-appgallery-oneplus","tag-apple","tag-apple-music","tag-apple-tv","tag-apple-watch","tag-bbc-sport","tag-best-mobile-games","tag-bixby","tag-bixby-xiaomi","tag-champions-league","tag-cyberpunk","tag-cyberpunk-2077","tag-fantasy-football","tag-fifa","tag-football","tag-formula-1","tag-fortnite","tag-free-fire","tag-free-mobile-games","tag-freebuds-pro","tag-galaxy-a52","tag-galaxy-note-20","tag-galaxy-s21","tag-galaxy-watch-4","tag-galaxy-z-fold-3","tag-game","tag-games","tag-golf","tag-harmonyos","tag-how-to-backup-iphone","tag-how-to-factory-reset-iphone","tag-how-to-reset-iphone","tag-how-to-restore-iphone","tag-how-to-unlock-iphone","tag-how-to-unlock-iphone-5","tag-how-to-unlock-iphone-6","tag-huawei","tag-ios","tag-ipad","tag-iphone","tag-live-soccer","tag-log4j2","tag-logging","tag-lol","tag-macbook","tag-macos","tag-mate-40-pro","tag-mi-11-lite","tag-mi-home-security-camera-basic-1080p","tag-mi-home-security-camera-basic-1080p-huawei","tag-mi-smart-band-6","tag-minecraft","tag-miui","tag-mlb-scores","tag-mobile-game-design","tag-mobile-game-development","tag-mobile-game-marketing","tag-mobile-game-monetization","tag-mobile-games","tag-mobile-gaming","tag-nba-scores","tag-nba-standings","tag-nfl","tag-nfl-scores","tag-nhl-scores","tag-one-ui","tag-oneplus","tag-oneplus-9-pro","tag-oneplus-buds-pro","tag-oneplus-nord-ce-5g","tag-oxygenos","tag-p40-pro-plus","tag-poco-x3-pro","tag-pokemon","tag-premier-league","tag-pubg","tag-pubg-mobile","tag-redmi-note-10-pro","tag-samsung","tag-samsung-pay","tag-soccer","tag-sports","tag-steam","tag-steeam","tag-top-10-anime","tag-valorant","tag-when-do-the-iphone-7-come-out","tag-when-does-the-iphone-7-come-out","tag-when-is-the-iphone-7-coming-out","tag-world-cup","tag-xbox-series-x","tag-xiaomi"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/gamefootballmobileanimeiphone.com\/index.php\/wp-json\/wp\/v2\/posts\/5413","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gamefootballmobileanimeiphone.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gamefootballmobileanimeiphone.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gamefootballmobileanimeiphone.com\/index.php\/wp-json\/wp\/v2\/users\/256"}],"replies":[{"embeddable":true,"href":"https:\/\/gamefootballmobileanimeiphone.com\/index.php\/wp-json\/wp\/v2\/comments?post=5413"}],"version-history":[{"count":1,"href":"https:\/\/gamefootballmobileanimeiphone.com\/index.php\/wp-json\/wp\/v2\/posts\/5413\/revisions"}],"predecessor-version":[{"id":5414,"href":"https:\/\/gamefootballmobileanimeiphone.com\/index.php\/wp-json\/wp\/v2\/posts\/5413\/revisions\/5414"}],"wp:attachment":[{"href":"https:\/\/gamefootballmobileanimeiphone.com\/index.php\/wp-json\/wp\/v2\/media?parent=5413"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gamefootballmobileanimeiphone.com\/index.php\/wp-json\/wp\/v2\/categories?post=5413"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gamefootballmobileanimeiphone.com\/index.php\/wp-json\/wp\/v2\/tags?post=5413"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}