{"id":194,"date":"2022-03-30T15:32:08","date_gmt":"2022-03-30T15:32:08","guid":{"rendered":"https:\/\/vkrastev1blog.com\/?p=194"},"modified":"2022-03-31T13:31:11","modified_gmt":"2022-03-31T13:31:11","slug":"java-configure-log4j2-in-your-project","status":"publish","type":"post","link":"https:\/\/vkrastev1blog.com\/2022\/03\/30\/java-configure-log4j2-in-your-project\/","title":{"rendered":"C\u1ea5u h\u00ecnh Java Log4j2 trong D\u1ef1 \u00e1n c\u1ee7a b\u1ea1n"},"content":{"rendered":"\n<ol class=\"wp-block-list\"><li>S\u1ef1 ph\u1ee5 thu\u1ed9c r\u00e0ng bu\u1ed9c c\u1ee7a Log4j2 v\u00e0 SLF4j<br>\u0110\u1ec3 Log4j2 ho\u1ea1t \u0111\u1ed9ng v\u1edbi SLF4J, ch\u00fang ta c\u1ea7n bao g\u1ed3m 3 ph\u1ea7n ph\u1ee5 thu\u1ed9c sau. <br>log4j-slf4j-impl.jar \u2013 Li\u00ean k\u1ebft Log4j 2 SLF4J. N\u00f3 cho ph\u00e9p c\u00e1c \u1ee9ng d\u1ee5ng \u0111\u01b0\u1ee3c m\u00e3 h\u00f3a theo API SLF4J s\u1eed d\u1ee5ng Log4j2 l\u00e0m ph\u01b0\u01a1ng th\u1ee9c tri\u1ec3n khai.<br>log4j-api.jar \u2013 cung c\u1ea5p c\u00e1c th\u00e0nh ph\u1ea7n b\u1ed9 \u0111i\u1ec1u h\u1ee3p c\u1ea7n thi\u1ebft cho ng\u01b0\u1eddi tri\u1ec3n khai \u0111\u1ec3 t\u1ea1o tri\u1ec3n khai ghi nh\u1eadt k\u00fd.<br>log4j-core.jar \u2013 C\u00e1c l\u1edbp tri\u1ec3n khai Log4j c\u1ed1t l\u00f5i.<br>C\u00e1c ph\u1ea7n ph\u1ee5 thu\u1ed9c Maven v\u00e0 Gradle c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c sao ch\u00e9p nh\u01b0 d\u01b0\u1edbi \u0111\u00e2y.<br>pom.xml<\/li><\/ol>\n\n\n\n<p class=\"has-text-align-left wp-block-paragraph\">&lt;ph\u1ee5 thu\u1ed9c&gt;     <br>&lt;groupId&gt;org.apache.logging.log4j&lt;\/groupId&gt;     <br>&lt;artifactId&gt;log4j-api&lt;\/artifactId&gt;     <br>&lt;version&gt;2.15.0&lt;\/version&gt; &lt;\/dependency&gt; <br>&lt;ph\u1ee5 thu\u1ed9c&gt;     <br>&lt;groupId&gt;org.apache.logging.log4j&lt;\/groupId&gt;    <br> &lt;artifactId&gt;log4j-core&lt;\/artifactId&gt;     <br>&lt;version&gt;2.15.0&lt;\/phi\u00ean b\u1ea3n&gt; <br>&lt;\/ph\u1ee5 thu\u1ed9c&gt; &lt;ph\u1ee5 thu\u1ed9c&gt;     <br>&lt;groupId&gt;org.apache.logging.log4j&lt;\/groupId&gt;     <br>&lt;artifactId&gt;log4j-slf4j-impl&lt;\/artifactId&gt;     <br>&lt;version&gt;2.15.0&lt;\/phi\u00ean b\u1ea3n&gt; <br>&lt;\/ph\u1ee5 thu\u1ed9c&gt;<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\"><li>T\u1ea1o T\u1ec7p log4j2.xml trong th\u01b0 m\u1ee5c T\u00e0i nguy\u00ean d\u1ef1 \u00e1n c\u1ee7a b\u1ea1n<br>V\u00ed d\u1ee5 v\u1edbi vi\u1ec7c cu\u1ed9n t\u1ec7p v\u00e0 s\u1eed d\u1ee5ng c\u00e1c bi\u1ebfn h\u1ec7 th\u1ed1ng v\u00e0 \u0111\u01b0\u1ee3c t\u1ea1o \u0111\u1ec3 s\u1eed d\u1ee5ng trong m\u00e1y ch\u1ee7 Wildfly:<\/li><\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">&lt;?xml version=&#8221;1.0&#8243; m\u00e3 h\u00f3a=&#8221;UTF-8&#8243;?&gt; <br>Tr\u1ea1ng th\u00e1i c\u1ea5u h\u00ecnh &lt;=&#8221;${env:LOG_LEVEL}&#8221;&gt;     <br>&lt;Appenders&gt;         <br>&lt;RollingFile name=&#8221;LogToFile&#8221; fileName=&#8221;${env:JBOSS_HOME}\/standalone\/log\/xxx.log&#8221; filePattern=&#8221;${env:JBOSS_HOME}\/standalone\/log\/xxx.log-%d{yyyy-MM-dd}&#8221;&gt; &lt;PatternLayout&gt; <br>&lt;pattern&gt;[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} &#8211; %msg%n &lt;\/pattern&gt; &lt;\/PatternLayout&gt; <br>&lt;Ch\u00ednh s\u00e1ch&gt; <br>&lt;TimeBasedTriggeringPolicy interval=&#8221;1&#8243; modulate=&#8221;true&#8221; \/&gt; <br>&lt;OnStartupTriggeringPolicy \/&gt;<br>&lt;\/Policies&gt; &lt;!&#8211; T\u1ed1i \u0111a 10 t\u1ec7p s\u1ebd \u0111\u01b0\u1ee3c t\u1ea1o m\u1ed7i ng\u00e0y &#8211;&gt; <br>&lt;M\u1eb7c \u0111\u1ecbnhRolloverChi\u1ebfn l\u01b0\u1ee3c max=&#8221;20&#8243;&gt; <br>&lt;Delete basePath=&#8221;${env:JBOSS_HOME}\/standalone\/log\/&#8221; maxDepth=&#8221;10&#8243;&gt; <br>&lt;!&#8211; X\u00f3a t\u1ea5t c\u1ea3 c\u00e1c t\u1ec7p c\u0169 h\u01a1n 30 ng\u00e0y &#8211;&gt; <br>&lt;IfLastModified age=&#8221;30d&#8221; \/&gt; <br>&lt;\/X\u00f3a&gt; <br>&lt;\/M\u1eb7c \u0111\u1ecbnhRolloverChi\u1ebfn l\u01b0\u1ee3c&gt; <br>&lt;\/RollingFile&gt;     <br>&lt;\/Appenders&gt;    <br> &lt;Logger&gt;         <br>&lt;!&#8211; tr\u00e1nh c\u00e1c nh\u1eadt k\u00fd tr\u00f9ng l\u1eb7p v\u1edbi additivity=false &#8211;&gt;         <br>&lt;Logger name=&#8221;xxx-be&#8221; level=&#8221;${env:LOG_LEVEL}&#8221; additivity=&#8221;false&#8221;&gt; &lt;AppenderRef ref=&#8221;LogToFile&#8221;\/&gt;         <br>&lt;\/Logger&gt;         <br>&lt;Root c\u1ea5p=&#8221;${env:LOG_LEVEL}&#8221;&gt;             <br>&lt;AppenderRef ref=&#8221;LogToFile&#8221;\/&gt;         <br>&lt;\/Root&gt;     <br>&lt;\/Logger&gt; <br>&lt;\/C\u1ea5u h\u00ecnh&gt;<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\"><li>log4j2.xml<\/li><li>S\u1eed d\u1ee5ng Logger trong m\u00e3<br>nh\u1eadp org.apache.logging.log4j.Logger;<br>Tr\u00ecnh ghi nh\u1eadt k\u00fd = LogManager.getLogger(&#8220;xxx-be&#8221;);<br>logger.info(&#8220;\u0111\u00e3 b\u1eaft \u0111\u1ea7u&#8221;);<\/li><\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">T\u00f4i c\u1ea7n c\u1ea3 ng\u00e0y \u0111\u1ec3 l\u00e0m cho n\u00f3 ho\u1ea1t \u0111\u1ed9ng. T\u00f4i hy v\u1ecdng \u0111i\u1ec1u n\u00e0y s\u1ebd gi\u00fap \u00edch cho c\u00e1c nh\u00e0 ph\u00e1t tri\u1ec3n.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>S\u1ef1 ph\u1ee5 thu\u1ed9c r\u00e0ng bu\u1ed9c c\u1ee7a Log4j2 v\u00e0 SLF4j\u0110\u1ec3 Log4j2 ho\u1ea1t \u0111\u1ed9ng v\u1edbi SLF4J, ch\u00fang ta c\u1ea7n bao g\u1ed3m 3 ph\u1ea7n ph\u1ee5 thu\u1ed9c sau. log4j-slf4j-impl.jar \u2013 Li\u00ean k\u1ebft Log4j 2 SLF4J. N\u00f3 cho ph\u00e9p c\u00e1c \u1ee9ng d\u1ee5ng \u0111\u01b0\u1ee3c m\u00e3 h\u00f3a theo API SLF4J s\u1eed d\u1ee5ng Log4j2 l\u00e0m ph\u01b0\u01a1ng th\u1ee9c tri\u1ec3n khai.log4j-api.jar \u2013 cung c\u1ea5p c\u00e1c [&hellip;]<\/p>\n","protected":false},"author":65283547,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_wpcom_ai_launchpad_first_post":false,"_jetpack_hide_featured_image":false,"_jetpack_featured_image_duplicate_dismissed":0,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[1017],"tags":[731731598,177442530,731731587,731731575,731731561],"class_list":["post-194","post","type-post","status-publish","format-standard","hentry","category-java","tag-cau-hinh-log4j2","tag-log4j2","tag-log4j2-duoi-con-ruoi-hoang-da","tag-log4j2-su-dung-bien-moi-truong","tag-log4j2-su-dung-bien-he-thong"],"jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p4CoHV-38","jetpack-related-posts":[{"id":247,"url":"https:\/\/vkrastev1blog.com\/2024\/04\/11\/how-to-create-pdf-from-html-or-image-using-java-pdfbox-framework\/","url_meta":{"origin":194,"position":0},"title":"C\u00e1ch t\u1ea1o PDF t\u1eeb HTML ho\u1eb7c h\u00ecnh \u1ea3nh b\u1eb1ng khung java pdfbox","author":"vkrastev2014","date":"11.04.2024","format":false,"excerpt":"Following example code here: In pom.xml insert or get the jar files and add them to the java project if you don't use maven <repositories> <repository> <id>jitpack.io<\/id> <url>https:\/\/jitpack.io<\/url> <\/repository> <\/repositories> <!-- https:\/\/mvnrepository.com\/artifact\/org.apache.pdfbox\/pdfbox --> <dependency> <groupId>org.apache.pdfbox<\/groupId> <artifactId>pdfbox<\/artifactId> <version>3.0.2<\/version> <\/dependency> <!-- https:\/\/mvnrepository.com\/artifact\/com.github.hkirk\/java-html2image --> <dependency> <groupId>com.github.hkirk<\/groupId> <artifactId>java-html2image<\/artifactId> <version>0.9<\/version> <\/dependency> and Java code here\u2026","rel":"","context":"In &quot;Java&quot;","block_context":{"text":"Java","link":"https:\/\/vkrastev1blog.com\/category\/java\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":217,"url":"https:\/\/vkrastev1blog.com\/2022\/05\/20\/eclipse-how-to-use-the-jpa-static-metamodel-classes-while-writing-criteria-queries-in-hibernate\/","url_meta":{"origin":194,"position":1},"title":"Eclipse how to use the JPA static metamodel classes while writing criteria queries in Hibernate","author":"vkrastev2014","date":"20.05.2022","format":false,"excerpt":"When you use Maven you have to add in your POM following dependency: <dependency> <groupId>org.hibernate<\/groupId> <artifactId>hibernate-jpamodelgen<\/artifactId> <version>5.3.7.Final<\/version> <\/dependency> Now you have to add folder target\\generated-sources\\annotations to your classpath as by default, the classes will be generated in this folder only. You go in Project Build Path -> Configure Build Path\u2026","rel":"","context":"In &quot;Java&quot;","block_context":{"text":"Java","link":"https:\/\/vkrastev1blog.com\/category\/java\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":208,"url":"https:\/\/vkrastev1blog.com\/2022\/04\/03\/maven-excluding-jars-from-war-file\/","url_meta":{"origin":194,"position":2},"title":"Maven lo\u1ea1i tr\u1eeb Jars kh\u1ecfi t\u1ec7p WAR","author":"vkrastev2014","date":"03.04.2022","format":false,"excerpt":"I have had a problem to exclude some Jars from War File with maven. You can do it using maven-war-plugin <project> ... <build> <plugins> <plugin> <artifactId>maven-war-plugin<\/artifactId> <version>3.3.2<\/version> <configuration> <packagingExcludes>WEB-INF\/lib\/xxxx*.jar<\/packagingExcludes> <\/configuration> <\/plugin> <\/plugins> <\/build> ... <\/project>","rel":"","context":"In &quot;Java&quot;","block_context":{"text":"Java","link":"https:\/\/vkrastev1blog.com\/category\/java\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":83,"url":"https:\/\/vkrastev1blog.com\/2014\/05\/16\/how-to-set-up-the-classpath-in-jar-manifest\/","url_meta":{"origin":194,"position":3},"title":"C\u00e1ch thi\u1ebft l\u1eadp \u0111\u01b0\u1eddng d\u1eabn l\u1edbp trong t\u1ec7p k\u00ea khai jar","author":"vkrastev2014","date":"16.05.2014","format":false,"excerpt":"You must break after exactly 70 characters. Otherwise the next line is not going to be treated as a continuation from the previous. There should be a leading space in all the wrapped lines, with a leading space for every line different from that with \"Class-path:\". And don't forget a\u2026","rel":"","context":"In &quot;Java&quot;","block_context":{"text":"Java","link":"https:\/\/vkrastev1blog.com\/category\/java\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":189,"url":"https:\/\/vkrastev1blog.com\/2022\/03\/24\/exclude-pom-dependency-from-all-dependencies-in-java-project-eclipse\/","url_meta":{"origin":194,"position":4},"title":"Lo\u1ea1i tr\u1eeb s\u1ef1 ph\u1ee5 thu\u1ed9c pom kh\u1ecfi t\u1ea5t c\u1ea3 c\u00e1c ph\u1ee5 thu\u1ed9c trong Java Project Eclipse","author":"vkrastev2014","date":"24.03.2022","format":false,"excerpt":"I have had a problem to exclude a dependency from all dependencies in POM file. If you dont use Eclipse you have to put exlusioin clauses on all dependencies in POM file for this dependency. I use Eclipse and you can do following. Open the Project in Eclipse in Package\u2026","rel":"","context":"In &quot;Java&quot;","block_context":{"text":"Java","link":"https:\/\/vkrastev1blog.com\/category\/java\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":232,"url":"https:\/\/vkrastev1blog.com\/2022\/10\/31\/install-solr-8-under-windows-as-service\/","url_meta":{"origin":194,"position":5},"title":"C\u00e0i \u0111\u1eb7t Solr 8 trong Windows d\u01b0\u1edbi d\u1ea1ng D\u1ecbch v\u1ee5","author":"vkrastev2014","date":"31.10.2022","format":false,"excerpt":"Here is short explained how to install Solr 8 as Windows service Download nssm from https:\/\/nssm.cc\/release\/nssm-2.24.zip and extract it to C:\\Program Files\\nssm Donwload Solr 8 from https:\/\/dlcdn.apache.org\/lucene\/solr\/8.11.2\/solr-8.11.2.zip and extract it to C:\\web\\solr Java Version 8 or later have to be istalled and JAVA_HOME environment variable set Create Windows Service solr8.\u2026","rel":"","context":"In &quot;Ng\u01b0\u1eddi kh\u00e1c&quot;","block_context":{"text":"Ng\u01b0\u1eddi kh\u00e1c","link":"https:\/\/vkrastev1blog.com\/category\/nguoi-khac\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_likes_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/vkrastev1blog.com\/wp-json\/wp\/v2\/posts\/194","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vkrastev1blog.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vkrastev1blog.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vkrastev1blog.com\/wp-json\/wp\/v2\/users\/65283547"}],"replies":[{"embeddable":true,"href":"https:\/\/vkrastev1blog.com\/wp-json\/wp\/v2\/comments?post=194"}],"version-history":[{"count":11,"href":"https:\/\/vkrastev1blog.com\/wp-json\/wp\/v2\/posts\/194\/revisions"}],"predecessor-version":[{"id":207,"href":"https:\/\/vkrastev1blog.com\/wp-json\/wp\/v2\/posts\/194\/revisions\/207"}],"wp:attachment":[{"href":"https:\/\/vkrastev1blog.com\/wp-json\/wp\/v2\/media?parent=194"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vkrastev1blog.com\/wp-json\/wp\/v2\/categories?post=194"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vkrastev1blog.com\/wp-json\/wp\/v2\/tags?post=194"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}