บันทึก Tomcat ของฉันอยู่ที่ไหน


26

ฉันติดตั้ง Tomcat6 บนเซิร์ฟเวอร์ Ubuntu 9.04 โดยใช้ apt-get install tomcat6 ฉันอัปโหลด WAR โดยใช้ส่วนติดต่อผู้จัดการและพยายามเริ่มต้นแอปพลิเคชัน แต่ได้รับข้อผิดพลาดทั่วไปในเว็บอินเตอร์เฟสว่าไม่สามารถเริ่มต้นได้

ฉันพยายามค้นหาบันทึกเพื่อระบุว่าเหตุใดสงครามของฉันจึงไม่เริ่มต้นขึ้น (ฉันสงสัยว่าหน่วยความจำเหลือน้อยเพราะฉันเป็น VPS ขนาดเล็ก) แต่ฉันไม่รู้ว่ามันอยู่ที่ไหน

/ var / lib / tomcat6 / logs ว่างเปล่า หน้าสแปลช Tomcat ของฉันแจ้งให้ฉันทราบถึงสิ่งต่อไปนี้อย่างเชื่อถือได้

Tomcat is installed with CATALINA_HOME in /usr/share/tomcat6 
CATALINA_BASE in /var/lib/tomcat6, 
following the rules from /usr/share/doc/tomcat6-common/RUNNING.txt.gz.

UPDATE

ฉันพยายามวิ่ง

$ ps -ax 
/usr/bin/jsvc -user tomcat6 -cp /usr/share/java/commons-daemon.jar:/usr/share/tomcat6/bin/bootstrap.jar -outfile SYSLOG -errfile SYSLOG -pidfile /var/run/tomcat6.pid

แต่ไม่มีอะไรใน / var / log / syslog

ยังทำงานอยู่

$ losof -p PID

ไม่แสดงไฟล์บันทึกใด ๆ ...

$  for PID in $(pgrep jsvc);do sudo ls -l /proc/$PID/fd|grep ' 1 -> ';done
l-wx------ 1 root 500 64 2010-03-30 13:29 1 -> pipe:[301470406]
lrwx------ 1 root 500 64 2010-03-30 13:29 1 -> /dev/null
l-wx------ 1 root root 64 2010-03-30 13:29 1 -> pipe:[301470406]

ขอบคุณ

Gav

คำตอบ:


5

ช้ามากสำหรับการสนทนานี้ แต่ปรากฏว่าไฟล์ 03catalina.policy ทั้งใน tomcat5.5 และ tomcat6 ไม่อนุญาตให้เขียนไฟล์ logfile ได้

ทางออกที่ง่ายที่สุดคือเปลี่ยนสิทธิ์ของ JULI เป็น:

// These permissions apply to JULI
grant codeBase "file:${catalina.home}/bin/tomcat-juli.jar" {
    permission java.security.AllPermission;
};

เห็นได้ชัดว่าอาจมีปัญหาด้านความปลอดภัยที่ฉันไม่ทราบ แต่ฉันก็ไม่ได้ใส่ใจที่จะขุดลึกลงไปอีก - ฉันใช้เวลากับตัวเองนานเกินไป


ขอบคุณสำหรับการอัปเดตฉันไม่เคยทำงานให้ตัวเองและตอนนี้ VPS ก็ตายแล้ว มันสมเหตุสมผลสำหรับฉันที่บันทึกไม่ได้ถูกเขียนเนื่องจากฉันไม่เคยเห็นด้ามจับเปิดเมื่อทำการอัพเซิร์ฟเวอร์
gav

33

กลอุบายที่ประณีตคือการเรียกใช้คำสั่ง " lsof -p PID" โดยที่ PID คือ id กระบวนการของเซิร์ฟเวอร์ tomcat ของคุณ คำสั่งนี้จะให้รายการของไฟล์ทั้งหมดที่เปิดโดยกระบวนการรวมถึงไฟล์บันทึก ดูหน้าวิกิพีเดีย


นั่นเป็นเคล็ดลับที่ยอดเยี่ยม! โชคไม่ดีที่กระบวนการของฉันไม่มีล็อกไฟล์ ... ไม่แน่ใจว่ามันหมายถึงอะไร
gav

2
อาจหมายความว่ากระบวนการไม่สามารถเปิดไฟล์บันทึกได้ คุณควรมีข้อผิดพลาดบางอย่างเข้าสู่ระบบคอนโซล / STDOUT หากคุณใช้งาน Linux คุณสามารถลองfor PID in $(pgrep java);do sudo ls -l /proc/$PID/fd|grep ' 1 -> ';done
Mircea Vutcovici

การใช้ apt-get เพื่อติดตั้ง Tomcat หมายความว่ามันถูกกำหนดค่าให้ทำงานเป็น daemon โดยใช้ jsvc เพิ่งต้องการการเปลี่ยนแปลงในคำสั่งของคุณเป็น (java -> jsvc) ตัวอย่างส่งคืนผลลัพธ์ที่ด้านล่างของคำถามของฉัน (การจัดรูปแบบความคิดเห็นไม่สามารถอ่านได้)
gav

18

โดยการตรวจสอบเริ่มต้น

/var/log/tomcat6/catalina.out 

หรืออะไรทำนองนั้น

และตรวจสอบคุณสมบัติการบันทึกใน

/usr/share/tomcat6/conf/logging.properties

โดยปกติ / usr / share / tomcat6 / conf / เป็นลิงก์สัญลักษณ์ไปยัง / etc / tomcat6 /


/var/log/tomcat6/catalina.out ไม่มีอยู่และไม่มีโฟลเดอร์ / usr / share / tomcat6 / conf /etc/tomcat6/logging.properties แสดงให้เห็นว่า $ {catalina.base} / logs เป็นไดเรกทอรีที่ฉันกำลังมองหา แต่อย่างที่ฉันบอกว่าไม่มีอะไรถูกเขียนที่นั่น Ho hum :(
gav

4

พวกเขาควรจะอยู่ที่ CATALINA_HOME/logs

ฉันเคยเห็นบ่อยที่สุด/opt/tomcat/logsแต่ในกรณีของคุณอาจเป็น/usr/share/logs


1

โดยค่าเริ่มต้นบันทึก Tomcat อยู่ใน/var/log/tomcat?และ/var/lib/tomcat7/logsมักจะชี้ไปที่นั่น

ในฐานะที่rootคุณสามารถตรวจสอบพวกเขาโดย:

tail -f /var/log/tomcat7/*.log /var/log/tomcat7/*.txt /var/log/tomcat7/*.out

หากคุณยังคงมีปัญหาใด ๆ ลองค้นหาพวกเขาผ่าน:

sudo lsof | grep -E "java.*(out|txt|log)$"

-1

เราสามารถค้นหาบันทึกเช่นด้านล่างสำหรับ Windows มูลนิธิซอฟต์แวร์ C: \ Program Files \ Apache 9.0 \ Tomcat

โปรดอ้างอิงคุณสมบัติพื้นฐานของซอฟต์แวร์ C: \ Program Files \ Apache 9.0 Tom \ conf \ logging


2
คำถามตามที่โพสต์หมายถึงการติดตั้ง Linux (Ubuntu โดยเฉพาะ) คำตอบที่คุณให้มาสำหรับการติดตั้งบน Windows นอกจากนี้คำถามนี้มีคำตอบที่ยอมรับแล้ว
คอเรย์เอส.
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.