אתחול האביב המשובץ ביומטקט

1. הקדמה

Spring Boot מגיע עם שרת Tomcat מוטבע, וזה מאוד שימושי. עם זאת, איננו יכולים לראות את יומני Tomcat כברירת מחדל.

במדריך זה נלמד כיצד הגדר את Spring Boot כך שיציג את יומני הרישום הפנימיים של Tomcat באמצעות יישום צעצוע.

2. יישום לדוגמא

קודם כל, בואו ניצור REST API. נגדיר א GreetingsController לברך את המשתמש:

@GetMapping ("/ greetings / {username}") ציבורי מחרוזת getGreetings (@PathVariable ("שם משתמש") שם מחרוזת) {החזר "שלום" + שם משתמש + ", יום טוב ... !!!"; }

3. סוגי יומני Tomcat

Tomcat מוטבע מאחסן שני סוגים של יומנים:

  • יומני גישה
  • יומני שרתים פנימיים

ה יומני גישה לשמור את רישומי כל הבקשות שעובדו על ידי הבקשה. ניתן להשתמש ביומנים אלה עקוב אחר דברים כמו ספירת התאמות לדפים ו פעילות של הפעלת משתמשים. בניגוד, יומני שרת פנימיים יעזור לנו לפתור בעיות כלשהן ביישום הרץ שלנו.

4. יומני גישה

כברירת מחדל, יומני הגישה אינם מופעלים.

אנחנו יכולים לאפשר אותם בקלות על ידי הוספת נכס ל- application.properties:

server.tomcat.accesslog.enabled = נכון

באופן דומה, אנו יכולים להשתמש בארגומנטים של VM כדי לאפשר את יומני הגישה:

java -jar -Dserver.tomcat.basedir = tomcat -Dserver.tomcat.accesslog.enabled = app.jar אמיתי

קבצי יומן אלה ייווצרו בספריה זמנית. לדוגמה, ב- Windows, הספריה ליומני גישה תיראה בערך כמו AppData \ Local \ Temp \ tomcat.2142886552084850151.40123 \ logs

4.1. פוּרמָט

לכן, כאשר מאפיין זה מופעל, נראה משהו כזה באפליקציה הפועלת שלנו:

0: 0: 0: 0: 0: 0: 0: 1 - - [13 / מאי / 2019: 23: 14: 51 +0530] "GET / ברכות / הארי HTTP / 1.1" 200 27 0: 0: 0: 0: 0: 0: 0: 1 - - [13 / מאי / 2019: 23: 17: 23 +0530] "GET / ברכות / הארי HTTP / 1.1" 200 27

אלה יומני הגישה ויש להם את הפורמט:

% h% l% u% t \ "% r \"%> s% b

שנוכל לפרש כ:

% h - ה- IP של הלקוח ששלח את הבקשה, 0:0:0:0:0:0:0:1 במקרה הזה

% l - זהות המשתמש

% u - שם המשתמש שנקבע על ידי אימות HTTP

% t - זמן קבלת הבקשה

% r - שורת הבקשה מהלקוח, קבל / ברכות / הארי HTTP / 1.1 במקרה הזה

%> s - קוד הסטטוס שנשלח מהשרת ללקוח, כמו 200 פה

% ב - גודל התגובה ללקוח, או 27 לבקשות אלה

מכיוון שלבקשה זו לא היה משתמש מאומת, % l ו-% u מקפים מודפסים.

למעשה, אם כל מידע חסר, Tomcat ידפיס מקף עבור חריץ זה.

4.2. התאמה אישית של יומני הגישה

אנו יכולים לעקוף את תצורת Spring Boot המוגדרת כברירת מחדל על ידי הוספת מאפיינים מעטים ב application.properties.

ראשית, כדי לשנות את שם קובץ יומן ברירת המחדל:

server.tomcat.accesslog.suffix = .log server.tomcat.accesslog.prefix = access_log server.tomcat.accesslog.file-date-format = .yyyy-MM-dd

כמו כן, אנו יכולים לשנות את מיקום קבצי היומן:

server.tomcat.basedir = tomcat server.tomcat.accesslog.directory = יומני

לבסוף, אנו יכולים לעקוף את אופן כתיבת היומנים בקובץ היומן:

server.tomcat.accesslog.pattern = נפוץ

יש גם כמה מאפיינים הניתנים להגדרה ב- Spring Boot.

5. יומנים פנימיים

היומנים הפנימיים של שרת Tomcat עוזרים מאוד לפתור כל בעיה בצד השרת.

כדי להציג יומנים אלה, עלינו להוסיף את תצורת הרישום בהמשך application.properties:

logging.level.org.apache.tomcat = DEBUG logging.level.org.apache.catalina = DEBUG

ואז נראה משהו כמו:

2019-05-17 15: 41: 07.261 DEBUG 31160 --- [0124-Acceptor-0] o.apache.tomcat.util.threads.LimitLatch: ספירה למעלה [http-nio-40124-Acceptor-0] latch = 1 2019-05-17 15: 41: 07.262 DEBUG 31160 --- [0124-Acceptor-0] o.apache.tomcat.util.threads.LimitLatch: ספירה למעלה [http-nio-40124-Acceptor-0] latch = 2 2019-05-17 15: 41: 07.278 DEBUG 31160 --- [io-40124-exec-1] org.apache.tomcat.util.modeler.Registry: מנוהל = Tomcat: type = RequestProcessor, עובד = "http-nio -40124 ", name = HttpRequest1 ... 17-05-2019 15: 41: 07.279 DEBUG 31160 --- [io-40124-exec-1] mmMbeansDescriptorsIntrospection Source: Introspected attribute virtualHost public java.lang.String org.apache. זאב ערבות.RequestInfo.getVirtualHost () null ... 17.05.2019 15: 41: 07.280 DEBUG 31160 --- [io-40124-exec-1] oatomcat.util.modeler.BaseModelMBean: preRegister [דוא"ל מוגן] Tomcat : type = RequestProcessor, עובד = "http-nio-40124", name = HttpRequest1 17-05-2019 15: 41: 07.292 DEBUG 31160 --- [io-40124-exec-1] org.apache.tomcat.util. http Parameters: הגדר que קידוד מחרוזות ל- UTF-8 17-05-2019 15: 41: 07.294 DEBUG 31160 --- [io-40124-exec-1] oatutil.http.Rfc6265CookieProcessor: Cookies: Parsing b []: jenkins-timestamper-offset = -19800000 17-05-2019 15: 41: 07.296 DEBUG 31160 --- [io-40124-exec-1] oacauthenticator.AuthenticatorBase: בקשת בדיקת אבטחה GET / ברכות / הארי 2019-05-17 15: 41: 07.296 DEBUG 31160 --- [io-40124-exec-1] org.apache.catalina.realm.RealmBase: לא הוגדרו אילוצים רלוונטיים

6. מסקנה

במאמר מהיר זה למדנו את ההבדל בין יומני הגישה הפנימיים של טומקט. ואז ראינו כיצד להפעיל ולהתאים אותם אישית.

הקפד לבדוק את הדגימה ב- GitHub.


$config[zx-auto] not found$config[zx-overlay] not found