![](/img/trans.png)
[英]How to write application logs using log4j appender for kafka?
[英]Write simple logs using log4j 2
我到處找,但找不到任何關於如何使用 log4j 2 的指南(對我來說很有意義)。作為背景,我對 log4j 或任何類型的日志記錄都非常陌生,並且最接近日志記錄我'曾經得到的是 System.out.println() 或 Java 中的 PrintWriter (如果這甚至被認為是日志記錄)。
我去Apache Log4j 2 頁面下載了 jar 文件,但是有 36 個 jar 文件,我不知道要使用哪個。
任何人都可以讓我開始了解如何從我的服務器代碼(在 Java 中)將簡單的字符串消息附加到日志文件中嗎? 例如,當用戶連接到我的服務器時,我有一個簡單的
System.out.println("user A connected to server at " + time);
代碼,在實際使用中對我沒有好處。 我想使用 Log4j 將所有 System.out 語句替換為日志記錄,以便稍后閱讀它們並檢測服務器代碼中的任何錯誤/崩潰。
提前致謝!
這是一個網絡應用程序嗎? 換句話說,它有 WEB-INF 文件夾嗎? 如果是這樣,請創建一個簡單的 log4j.properties 文件,其中包含以下內容:
# Define the root logger with appender file
log4j.rootLogger = DEBUG, FILE
# Define the file appender
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=log.out
# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n
確保在這一行:
log4j.appender.FILE.File=log.out
你有一個實際為它創建的文件。 我以 log.out 為例。
將它放在您的 WEB-INF 文件夾中。
如果是 Maven 項目,請在項目中找到該文件的位置並通過右鍵單擊 Run->Run Configuration -> [classpath tab] -> 單擊 user Entries -> Advanced -> 選擇 Add Folder -> 和添加放置文件的目錄。
在您的課程中,導入:
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.FileAppender;
然后實例化您的記錄器對象:
static Logger log = Logger.getLogger(LdapPurge.class.getName());
試試看,看看它是否有效。
我一直在使用 Log4j 2.x 版,最近寫了一篇關於它的使用的文章。 您可以查看它,也許它會對您有所幫助:
要使用 Log4j 2.x 需要 2 個庫:
<dependency>
<groupId> org.apache.logging.log4j </groupId>
<artifactId> log4j-core </artifactId>
<version> 2.8.2 </version>
</dependency>
<dependency>
<groupId> org.apache.logging.log4j </groupId>
<artifactId> log4j-api </artifactId>
<version> 2.8.2 </version>
</dependency>
在資源文件夾中創建 log42.xml 文件:
<?xml version="1.0" encoding="UTF-8"?>
<!--https://logging.apache.org/log4j/2.x/manual/configuration.html-->
<Configuration status="TRACE" monitorInterval="30">
<!-- The properties that are needed in the configuration of the appenders are defined | property definition -->
<Properties>
<!--The pattern is defined. For writing in logs -->
<Property name="LOG_PATTERN">%d{yyyy-MM-dd'T'HH:mm:ss.SSSZ} [%t] %-5level %logger{36} - %msg%n</Property>
<!--Storage location is defined -->
<Property name="APP_LOG_ROOT">var/log/tomcat0</Property>
</Properties>
<Appenders>
<!-- Configuration for writing events to console (cmd, ide, terminal)-->
<Console name="Console" target="SYSTEM_OUT" follow="true">
<PatternLayout pattern="${LOG_PATTERN}" />
</Console>
<!--
Configuration for writing debug events.
for more information about properties: https://logging.apache.org/log4j/2.x/manual/appenders.html
-->
<RollingFile name="debugLog"
fileName="${APP_LOG_ROOT}/logs/automatizador-debug.log"
filePattern="${APP_LOG_ROOT}/logs/$${date:yyyy-MM}/automatizador-debug-%d{yyyy-MM-dd}-%i.log.gz">
<LevelRangeFilter minLevel="DEBUG" maxLevel="DEBUG" onMatch="ACCEPT"
onMismatch="DENY"/>
<PatternLayout pattern="${LOG_PATTERN}"/>
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="19500KB" />
</Policies>
<DefaultRolloverStrategy max="10"/>
</RollingFile>
<!--Define the logger-->
<Loggers>
<!--only log events from type "debug" for the package: com.advanced.development -->
<Logger name="com.advanced.development" additivity="false"
level="trace">
<AppenderRef ref="debugLog" />
<AppenderRef ref="Console" />
</Logger>
<Root level="error">
<AppenderRef ref="debugLog"/>
<AppenderRef ref="Console"/>
</Root>
</Loggers>
</Configuration>
更多詳情: https : //su9.co/9BaE74E
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.