@@ -32,6 +32,7 @@ const path = require('path');
32
32
const grpc = require ( 'grpc' ) ;
33
33
const request = require ( 'request' ) ;
34
34
const xml2js = require ( 'xml2js' ) ;
35
+ const pino = require ( 'pino' ) ;
35
36
const protoLoader = require ( '@grpc/proto-loader' ) ;
36
37
37
38
const MAIN_PROTO_PATH = path . join ( __dirname , './proto/demo.proto' ) ;
@@ -43,6 +44,13 @@ const DATA_URL = 'http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml';
43
44
const shopProto = _loadProto ( MAIN_PROTO_PATH ) . hipstershop ;
44
45
const healthProto = _loadProto ( HEALTH_PROTO_PATH ) . grpc . health . v1 ;
45
46
47
+ const logger = pino ( {
48
+ name : 'currencyservice-server' ,
49
+ messageKey : 'message' ,
50
+ changeLevelName : 'severity' ,
51
+ useLevelLabels : true
52
+ } ) ;
53
+
46
54
/**
47
55
* Helper function that loads a protobuf file.
48
56
*/
@@ -67,7 +75,7 @@ function _loadProto (path) {
67
75
let _data ;
68
76
function _getCurrencyData ( callback ) {
69
77
if ( ! _data ) {
70
- console . log ( 'Fetching currency data...' ) ;
78
+ logger . info ( 'Fetching currency data...' ) ;
71
79
request ( DATA_URL , ( err , res ) => {
72
80
if ( err ) {
73
81
throw new Error ( `Error getting data: ${ err } ` ) ;
@@ -108,7 +116,7 @@ function _carry (amount) {
108
116
* Lists the supported currencies
109
117
*/
110
118
function getSupportedCurrencies ( call , callback ) {
111
- console . log ( 'Getting supported currencies...' ) ;
119
+ logger . info ( 'Getting supported currencies...' ) ;
112
120
_getCurrencyData ( ( data ) => {
113
121
callback ( null , { currency_codes : Object . keys ( data ) } ) ;
114
122
} ) ;
@@ -118,7 +126,7 @@ function getSupportedCurrencies (call, callback) {
118
126
* Converts between currencies
119
127
*/
120
128
function convert ( call , callback ) {
121
- console . log ( 'received conversion request' ) ;
129
+ logger . info ( 'received conversion request' ) ;
122
130
try {
123
131
_getCurrencyData ( ( data ) => {
124
132
const request = call . request ;
@@ -142,12 +150,11 @@ function convert (call, callback) {
142
150
result . nanos = Math . floor ( result . nanos ) ;
143
151
result . currency_code = request . to_code ;
144
152
145
- console . log ( `conversion request successful` ) ;
153
+ logger . info ( `conversion request successful` ) ;
146
154
callback ( null , result ) ;
147
155
} ) ;
148
156
} catch ( err ) {
149
- console . error ( 'conversion request failed.' ) ;
150
- console . error ( err ) ;
157
+ logger . error ( `conversion request failed: ${ err } ` ) ;
151
158
callback ( err . message ) ;
152
159
}
153
160
}
@@ -164,7 +171,7 @@ function check (call, callback) {
164
171
* CurrencyConverter service at the sample server port
165
172
*/
166
173
function main ( ) {
167
- console . log ( `Starting gRPC server on port ${ PORT } ...` ) ;
174
+ logger . info ( `Starting gRPC server on port ${ PORT } ...` ) ;
168
175
const server = new grpc . Server ( ) ;
169
176
server . addService ( shopProto . CurrencyService . service , { getSupportedCurrencies, convert} ) ;
170
177
server . addService ( healthProto . Health . service , { check} ) ;
0 commit comments