The access log can effectively record all service request information processed by a machine over a period of time, including request reception time, remote IP, request parameters, response results, etc. Dynamically enabling the access log at runtime is very helpful for problem troubleshooting.
All user services of the mall are provided by the UserService of the User
application. Through this task, we enable the access log for one or more machines of the User
application to observe the overall access situation of user services.
Dubbo identifies the access log status through the accesslog
tag. We can specify the output location of the log file, and we can also enable the access log for a specific machine.
shop-user
, and check “Enable Access Log” (at this time, the access log will be printed together with the normal log).After visiting the login page again and logging into any machine of the User
application, you can see the access log in the following format.
[2022-12-30 12:36:31.15900] -> [2022-12-30 12:36:31.16000] 192.168.0.103:60943 -> 192.168.0.103:20884 - org.apache.dubbo.samples.UserService login(java.lang.String,java.lang.String) ["test",""], dubbo version: 3.2.0-beta.4-SNAPSHOT, current host: 192.168.0.103
[2022-12-30 12:36:33.95900] -> [2022-12-30 12:36:33.95900] 192.168.0.103:60943 -> 192.168.0.103:20884 - org.apache.dubbo.samples.UserService getInfo(java.lang.String) ["test"], dubbo version: 3.2.0-beta.4-SNAPSHOT, current host: 192.168.0.103
[2022-12-30 12:36:31.93500] -> [2022-12-30 12:36:34.93600] 192.168.0.103:60943 -> 192.168.0.103:20884 - org.apache.dubbo.samples.UserService getInfo(java.lang.String) ["test"], dubbo version: 3.2.0-beta.4-SNAPSHOT, current host: 192.168.0.103
Rule Key: shop-user
Rule Body
configVersion: v3.0
enabled: true
configs:
- side: provider
parameters:
accesslog: true
The key configuration to enable access logs is as follows:
parameters:
accesslog: true
The effective values of accesslog are as follows:
true
or default
, the access log will be output together with the business logger. You can configure the dubbo.accesslog
appender in advance to adjust the output location and format of the logs./home/admin/demo/dubbo-access.log
will print the access log to the specified file.In the Admin interface, you can also specify whether to enable the access log for a specific machine for precise problem troubleshooting, with the corresponding backend rule as follows:
configVersion: v3.0
enabled: true
configs:
- match
address:
oneof:
- wildcard: "{ip}:*"
side: provider
parameters:
accesslog: true
Here, replace {ip}
with the specific machine address.