Joget DX 8 Stable Released
The stable release for Joget DX 8 is now available, with a focus on UX and Governance.
...
Chinese |
---|
写入正确的日志 |
English |
---|
Let's start with the basics first. In order to write into the log files correctly, we should make use of the LogUtil (Source code: https://github.com/jogetworkflow/jw-community/blob/6.0-SNAPSHOT/wflow-commons/src/main/java/org/joget/commons/util/LogUtil.java) utility class. We should not use the following to print out log in writing our own plugins. |
Chinese |
---|
让我们先从基础开始。为了正确写入日志文件,我们应该使用LogUtil (源代码: https://github.com/jogetworkflow/jw-community/blob/6.0-SNAPSHOT/wflow-commons/src/main/java/org/joget/commons/util/LogUtil.java)实用程序类。 在编写我们自己的插件时,我们不应使用以下内容打印日志。 |
Thai |
---|
เริ่มจากพื้นฐานกันก่อน ในการเขียนไฟล์บันทึกอย่างถูกต้องเราควรใช้ LogUtil (ซอร์สโค้ด: https://github.com/jogetworkflow/jw-community/blob/6.0-SNAPSHOT/wflow-commons/src/main/java/org/joget/commons/util/LogUtil.java) คลาสยูทิลิตี้ เมื่อเขียนปลั๊กอินของเราเราไม่ควรใช้สิ่งต่อไปนี้เพื่อพิมพ์บันทึก |
Code Block | ||
---|---|---|
| ||
System.out.println("Execution is successful"); |
...
Chinese |
---|
这是因为此消息行将出现在catalina.out中,而不出现在默认的Joget日志文件joget.log中。 相反,我们应该利用LogUtil提供的这些方法。在Email Tool使用的代码中查看一些示例 (源代码: https://github.com/jogetworkflow/jw-community/blob/6.0-SNAPSHOT/wflow-core/src/main/java/org/joget/apps/app/lib/EmailTool.java#L227) |
Thai |
---|
นี่เป็นเพราะบรรทัดข้อความนี้จะปรากฏใน catalina.out แทนไฟล์บันทึก Joget เริ่มต้น joget.log แต่เราควรใช้ประโยชน์จากวิธีการเหล่านี้โดย LogUtil ดูตัวอย่างในรหัสที่ใช้โดยเครื่องมืออีเมล (ซอร์สโค้ด: https://github.com/jogetworkflow/jw-community/blob/6.0-SNAPSHOT/wflow-core/src/main/java/org/joget/apps/app/lib/EmailTool.java#L227) |
Code Block | ||
---|---|---|
| ||
LogUtil.info(EmailTool.class.getName(), "EmailTool: Sending email from=" + email.getFromAddress().toString() + ", to=" + to + "cc=" + cc + ", bcc=" + bcc + ", subject=" + email.getSubject()); LogUtil.info(EmailTool.class.getName(), "EmailTool: Sending email completed for subject=" + email.getSubject()); LogUtil.error(EmailTool.class.getName(), ex, ""); |
...
You may have already noticed that by default, we have log file named as email.log as Email Tool and related plugins are writing into this specific file. We may also consider this approach in breaking down the number of lines being written into a single log file for better troubleshooting.
Chinese |
---|
您可能已经注意到默认情况下,由于电子邮件工具和相关插件正在写入此特定文件,因此我们将日志文件命名为email.log。我们还可以考虑使用这种方法来分解写入单个日志文件的行数,以更好地进行故障排除。 导航到“ [JogetFolder] \ apache-tomcat-8.5.23 \ webapps \ jw \ WEB-INF \ classes \ log4j.properties”配置文件,并检查R2标签的使用,以了解EmailTool,UserNotificationAuditTrail和ExportFormEmailTool如何写入email.log文件。 |
Thai |
---|
คุณอาจสังเกตเห็นแล้วว่าโดยค่าเริ่มต้นเรามีไฟล์บันทึกชื่อเป็น email.log เป็นเครื่องมืออีเมลและปลั๊กอินที่เกี่ยวข้องกำลังเขียนลงในไฟล์นี้โดยเฉพาะ นอกจากนี้เรายังสามารถพิจารณาใช้วิธีนี้เพื่อแยกจำนวนบรรทัดที่เขียนลงในไฟล์บันทึกเดียวเพื่อการแก้ไขปัญหาที่ดี นำทางไปยังไฟล์กำหนดค่า "[JogetFolder] \ apache-tomcat-8.5.23 \ webapps \ jw \ WEB-INF \ คลาส \ log4j.properties" และตรวจสอบการใช้แท็ก R2 เพื่อดูว่า EmailTool, UserNotificationAuditTrail และ ExportFormEmailTool เป็นอย่างไร แล้วเขียนลงในไฟล์ email.log |
Info | ||
---|---|---|
| ||
Navigate to the "[JogetFolder]\apache-tomcat-8.5. |
...
72\webapps\jw\WEB-INF\classes\ |
...
log4j2. |
...
xml" configuration file and check out the use of |
...
EMAIL rolling files to see how EmailTool, UserNotificationAuditTrail, and ExportFormEmailTool are writing into email.log file. |
...
|
Info | |||||||
---|---|---|---|---|---|---|---|
| |||||||
Navigate to the " | |||||||
Chinese | |||||||
您可能已经注意到默认情况下,由于电子邮件工具和相关插件正在写入此特定文件,因此我们将日志文件命名为email.log。我们还可以考虑使用这种方法来分解写入单个日志文件的行数,以更好地进行故障排除。 导航到“[JogetFolder]\apache-tomcat-8.5.23\webapps\jw\WEB-INF\classes\log4j. properties”配置文件,并检查R2标签的使用,以了解EmailTool,UserNotificationAuditTrail和ExportFormEmailTool如何写入email.log文件。properties" configuration file and check out the use of R2 tag to see how EmailTool, UserNotificationAuditTrail, and ExportFormEmailTool are writing into email.log file.
|
Identifying App Origin in Log Files
Chinese |
---|
在日志文件中识别应用程序来源 |
In the section above, we talked about using LogUtil to write into the log files and how to write into separate files too. When we have too many apps running in the same copy of Joget, sometimes it is trace certain line of messages to the origin of Joget apps that trigger them.
...
Chinese |
---|
在上一节中,我们讨论了使用LogUtil写入日志文件以及如何写入单独的文件。当我们在同一个Joget副本中运行太多应用程序时,有时会将某些消息行追溯到触发它们的Joget应用程序的来源。 例如,让我们看一下这些日志消息。 |
Thai |
---|
ในส่วนด้านบนเราได้พูดคุยเกี่ยวกับการใช้ LogUtil เพื่อเขียนลงในล็อกไฟล์และวิธีเขียนลงในไฟล์แยกกันด้วย เมื่อเรามีแอพจำนวนมากที่ทำงานอยู่ใน Joget เดียวกันบางครั้งก็มีการติดตามข้อความบางข้อความถึงต้นกำเนิดของแอพ Joget ที่เรียกใช้งาน ตัวอย่างเช่นลองดูที่ข้อความบันทึกเหล่านี้ |
Code Block | ||||
---|---|---|---|---|
| ||||
ERROR 17 Jun 2019 17:29:39 org.joget.apps.app.lib.EmailTool - org.apache.commons.mail.EmailException: Sending the email to the following server failed : smtp.outlook.comtest:587 org.apache.commons.mail.EmailException: Sending the email to the following server failed : smtp.outlook.comtest:587 at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1421) at org.apache.commons.mail.Email.send(Email.java:1448) at org.joget.apps.app.lib.EmailTool$1.run(EmailTool.java:239) at java.lang.Thread.run(Thread.java:748) at org.joget.commons.util.PluginThread.run(PluginThread.java:22) |
...
Chinese |
---|
我们无法确定从哪个Joget应用程序触发了EmailTool。但是,在Process Tool的execute方法中,我们可以获得包含Joget应用程序信息的appDef对象。 查看下面的示例代码。 |
Thai |
---|
ไม่มีวิธีที่เราสามารถบอกได้ว่าแอพ Joget ใดที่ EmailTool ทำงาน อย่างไรก็ตามในวิธีการดำเนินการของเครื่องมือประมวลผลเราสามารถรับวัตถุ appDef ซึ่งมีข้อมูลแอป Joget ลองดูโค้ดตัวอย่างด้านล่าง |
Code Block | ||||
---|---|---|---|---|
| ||||
public Object execute(Map properties) { AppDefinition appDef = (AppDefinition) properties.get("appDef"); String appInfoAndMessage = appDef.toString() + "- Something happened"; LogUtil.error(EmailTool.class.getName(), ex, appInfoAndMessage); } |
...
Chinese |
---|
这样,我们将能够跟踪到触发并在日志文件中写入消息行的应用程序。 |
Thai |
---|
ด้วยวิธีนี้เราจะสามารถติดตามไปยังแอปพลิเคชันที่เรียกใช้และเขียนบรรทัดข้อความในไฟล์บันทึก |
Info | |||||||||
---|---|---|---|---|---|---|---|---|---|
| |||||||||
The object "appDef" is available in the following type of plugins.
In other plugin types, we can try to obtain the App Definition object by using the following codes.
|
...
Chinese |
---|
我们可以考虑对日志文件进行LogRotate。请查看以下链接: |
Thai |
---|
เราสามารถพิจารณา LogRotate ไฟล์บันทึก โปรดดูลิงค์ต่อไปนี้: - |
...
Chinese |
---|
至于joget.log,我们已经使用Log4J进行旋转了,如上面的log4j.properties文件片段所示。 |
Thai |
---|
สำหรับ joget.log เราใช้ Log4J สำหรับการหมุนดังที่แสดงในตัวอย่างไฟล์ log4j.properties ด้านบน |