xref: /aosp_15_r20/external/grpc-grpc/src/ruby/lib/grpc/logconfig.rb (revision cc02d7e222339f7a4f6ba5f422e6413f4bd931f2)
1*cc02d7e2SAndroid Build Coastguard Worker# Copyright 2015 gRPC authors.
2*cc02d7e2SAndroid Build Coastguard Worker#
3*cc02d7e2SAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License");
4*cc02d7e2SAndroid Build Coastguard Worker# you may not use this file except in compliance with the License.
5*cc02d7e2SAndroid Build Coastguard Worker# You may obtain a copy of the License at
6*cc02d7e2SAndroid Build Coastguard Worker#
7*cc02d7e2SAndroid Build Coastguard Worker#     http://www.apache.org/licenses/LICENSE-2.0
8*cc02d7e2SAndroid Build Coastguard Worker#
9*cc02d7e2SAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software
10*cc02d7e2SAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS,
11*cc02d7e2SAndroid Build Coastguard Worker# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*cc02d7e2SAndroid Build Coastguard Worker# See the License for the specific language governing permissions and
13*cc02d7e2SAndroid Build Coastguard Worker# limitations under the License.
14*cc02d7e2SAndroid Build Coastguard Worker
15*cc02d7e2SAndroid Build Coastguard Worker# GRPC contains the General RPC module.
16*cc02d7e2SAndroid Build Coastguard Workermodule GRPC
17*cc02d7e2SAndroid Build Coastguard Worker  # DefaultLogger is a module included in GRPC if no other logging is set up for
18*cc02d7e2SAndroid Build Coastguard Worker  # it.  See ../spec/spec_helpers an example of where other logging is added.
19*cc02d7e2SAndroid Build Coastguard Worker  module DefaultLogger
20*cc02d7e2SAndroid Build Coastguard Worker    def logger
21*cc02d7e2SAndroid Build Coastguard Worker      LOGGER
22*cc02d7e2SAndroid Build Coastguard Worker    end
23*cc02d7e2SAndroid Build Coastguard Worker
24*cc02d7e2SAndroid Build Coastguard Worker    private
25*cc02d7e2SAndroid Build Coastguard Worker
26*cc02d7e2SAndroid Build Coastguard Worker    # NoopLogger implements the methods of Ruby's conventional logging interface
27*cc02d7e2SAndroid Build Coastguard Worker    # that are actually used internally within gRPC with a noop implementation.
28*cc02d7e2SAndroid Build Coastguard Worker    class NoopLogger
29*cc02d7e2SAndroid Build Coastguard Worker      def info(_ignored)
30*cc02d7e2SAndroid Build Coastguard Worker      end
31*cc02d7e2SAndroid Build Coastguard Worker
32*cc02d7e2SAndroid Build Coastguard Worker      def debug(_ignored)
33*cc02d7e2SAndroid Build Coastguard Worker      end
34*cc02d7e2SAndroid Build Coastguard Worker
35*cc02d7e2SAndroid Build Coastguard Worker      def warn(_ignored)
36*cc02d7e2SAndroid Build Coastguard Worker      end
37*cc02d7e2SAndroid Build Coastguard Worker    end
38*cc02d7e2SAndroid Build Coastguard Worker
39*cc02d7e2SAndroid Build Coastguard Worker    LOGGER = NoopLogger.new
40*cc02d7e2SAndroid Build Coastguard Worker  end
41*cc02d7e2SAndroid Build Coastguard Worker
42*cc02d7e2SAndroid Build Coastguard Worker  # Inject the noop #logger if no module-level logger method has been injected.
43*cc02d7e2SAndroid Build Coastguard Worker  extend DefaultLogger unless methods.include?(:logger)
44*cc02d7e2SAndroid Build Coastguard Workerend
45