Skip to content

Commit 46cc4f2

Browse files
peterstone2017YunchuWang
authored andcommitted
make logging lazy format
1 parent e4a7744 commit 46cc4f2

File tree

9 files changed

+97
-84
lines changed

9 files changed

+97
-84
lines changed

azure_functions_worker/bindings/datumdef.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -133,8 +133,8 @@ def from_rpc_shared_memory(
133133

134134
if ret_val is not None:
135135
logger.info(
136-
f'Read {count} bytes from memory map {mem_map_name} '
137-
f'for data type {data_type}')
136+
'Read %s bytes from memory map %s for data type %s', count,
137+
mem_map_name, data_type)
138138
return ret_val
139139
return None
140140

@@ -162,8 +162,8 @@ def to_rpc_shared_memory(
162162
)
163163

164164
if shared_mem_meta is None:
165-
logger.warning('Cannot write to shared memory for type: '
166-
f'{datum.type}')
165+
logger.warning('Cannot write to shared memory for type: %s',
166+
datum.type)
167167
return None
168168

169169
shmem = protos.RpcSharedMemory(
@@ -173,8 +173,9 @@ def to_rpc_shared_memory(
173173
type=data_type)
174174

175175
logger.info(
176-
f'Wrote {shared_mem_meta.count_bytes} bytes to memory map '
177-
f'{shared_mem_meta.mem_map_name} for data type {data_type}')
176+
'Wrote %s bytes to memory map %s for data type %s',
177+
shared_mem_meta.count_bytes, shared_mem_meta.mem_map_name,
178+
data_type)
178179
return shmem
179180

180181

azure_functions_worker/bindings/shared_memory_data_transfer/file_accessor_unix.py

Lines changed: 28 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ def open_mem_map(
4343
f'Cannot open memory map. Invalid size {mem_map_size}')
4444
fd = self._open_mem_map_file(mem_map_name)
4545
if fd is None:
46-
logger.warning(f'Cannot open file: {mem_map_name}')
46+
logger.warning('Cannot open file: %s', mem_map_name)
4747
return None
4848
mem_map = mmap.mmap(fd.fileno(), mem_map_size, access=access)
4949
return mem_map
@@ -58,7 +58,7 @@ def create_mem_map(self, mem_map_name: str, mem_map_size: int) \
5858
f'Cannot create memory map. Invalid size {mem_map_size}')
5959
file = self._create_mem_map_file(mem_map_name, mem_map_size)
6060
if file is None:
61-
logger.warning(f'Cannot create file: {mem_map_name}')
61+
logger.warning('Cannot create file: %s', mem_map_name)
6262
return None
6363
mem_map = mmap.mmap(file.fileno(), mem_map_size, mmap.MAP_SHARED,
6464
mmap.PROT_WRITE)
@@ -80,7 +80,7 @@ def delete_mem_map(self, mem_map_name: str, mem_map: mmap.mmap) -> bool:
8080
# deletion was unsuccessful.
8181
# These logs can help identify if we may be leaking memory and not
8282
# cleaning up the created memory maps.
83-
logger.error(f'Cannot delete memory map {mem_map_name} - {e}',
83+
logger.error('Cannot delete memory map %s - %s', mem_map_name, e,
8484
exc_info=True)
8585
return False
8686
mem_map.close()
@@ -96,12 +96,15 @@ def _get_allowed_mem_map_dirs(self) -> List[str]:
9696
allowed_mem_map_dirs_str = get_app_setting(setting)
9797
if allowed_mem_map_dirs_str is None:
9898
allowed_mem_map_dirs = consts.UNIX_TEMP_DIRS
99-
logger.info('Using allowed directories for shared memory: '
100-
f'{allowed_mem_map_dirs} from App Setting: {setting}')
99+
logger.info(
100+
'Using allowed directories for shared memory: %s from App '
101+
'Setting: %s',
102+
allowed_mem_map_dirs, setting)
101103
else:
102104
allowed_mem_map_dirs = allowed_mem_map_dirs_str.split(',')
103-
logger.info('Using default allowed directories for shared memory: '
104-
f'{allowed_mem_map_dirs}')
105+
logger.info(
106+
'Using default allowed directories for shared memory: %s',
107+
allowed_mem_map_dirs)
105108
return allowed_mem_map_dirs
106109

107110
def _get_valid_mem_map_dirs(self) -> List[str]:
@@ -121,18 +124,20 @@ def _get_valid_mem_map_dirs(self) -> List[str]:
121124
if os.path.exists(dir_path):
122125
# A valid directory already exists
123126
valid_dirs.append(dir_path)
124-
logger.debug(f'Found directory {dir_path} to store memory maps')
127+
logger.debug('Found directory %s to store memory maps',
128+
dir_path)
125129
else:
126130
try:
127131
os.makedirs(dir_path)
128132
valid_dirs.append(dir_path)
129133
except Exception as e:
130134
# We keep trying to check/create others
131-
logger.warning(f'Cannot create directory {dir_path} to '
132-
f'store memory maps - {e}', exc_info=True)
135+
logger.warning('Cannot create directory %s to '
136+
'store memory maps - %s', dir_path, e,
137+
exc_info=True)
133138
if len(valid_dirs) == 0:
134-
logger.error('No valid directory for memory maps in '
135-
f'{allowed_dirs}')
139+
logger.error('No valid directory for memory maps in %s',
140+
allowed_dirs)
136141
return valid_dirs
137142

138143
def _open_mem_map_file(self, mem_map_name: str) -> Optional[BufferedRandom]:
@@ -149,11 +154,13 @@ def _open_mem_map_file(self, mem_map_name: str) -> Optional[BufferedRandom]:
149154
fd = open(file_path, 'r+b')
150155
return fd
151156
except Exception as e:
152-
logger.error(f'Cannot open file {file_path} - {e}',
157+
logger.error('Cannot open file %s - %s', file_path, e,
153158
exc_info=True)
154159
# The memory map was not found in any of the known directories
155-
logger.error(f'Cannot open memory map {mem_map_name} in any of the '
156-
f'following directories: {self.valid_dirs}')
160+
logger.error(
161+
'Cannot open memory map %s in any of the following directories: '
162+
'%s',
163+
mem_map_name, self.valid_dirs)
157164
return None
158165

159166
def _create_mem_map_file(self, mem_map_name: str, mem_map_size: int) \
@@ -179,12 +186,13 @@ def _create_mem_map_file(self, mem_map_name: str, mem_map_size: int) \
179186
except Exception as e:
180187
# If the memory map could not be created in this directory, we
181188
# keep trying in other applicable directories.
182-
logger.warning(f'Cannot create memory map in {file_path} - {e}.'
183-
' Trying other directories.', exc_info=True)
189+
logger.warning('Cannot create memory map in %s - %s.'
190+
' Trying other directories.', file_path, e,
191+
exc_info=True)
184192
# Could not create the memory map in any of the applicable directory
185193
# paths so we fail.
186194
logger.error(
187-
f'Cannot create memory map {mem_map_name} with size '
188-
f'{mem_map_size} in any of the following directories: '
189-
f'{self.valid_dirs}')
195+
'Cannot create memory map %s with size %s in any of the '
196+
'following directories: %s',
197+
mem_map_name, mem_map_size, self.valid_dirs)
190198
return None

azure_functions_worker/bindings/shared_memory_data_transfer/file_accessor_windows.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@ def open_mem_map(
3434
return mem_map
3535
except Exception as e:
3636
logger.warning(
37-
f'Cannot open memory map {mem_map_name} with size '
38-
f'{mem_map_size} - {e}')
37+
'Cannot open memory map %s with size %s - %s', mem_map_name,
38+
mem_map_size, e)
3939
return None
4040

4141
def create_mem_map(self, mem_map_name: str, mem_map_size: int) \

azure_functions_worker/bindings/shared_memory_data_transfer/shared_memory_manager.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -92,14 +92,14 @@ def put_bytes(self, content: bytes) -> Optional[SharedMemoryMetadata]:
9292
try:
9393
num_bytes_written = shared_mem_map.put_bytes(content)
9494
except Exception as e:
95-
logger.warning(f'Cannot write {content_length} bytes into shared '
96-
f'memory {mem_map_name} - {e}')
95+
logger.warning('Cannot write %s bytes into shared memory %s - %s',
96+
content_length, mem_map_name, e)
9797
shared_mem_map.dispose()
9898
return None
9999
if num_bytes_written != content_length:
100100
logger.error(
101-
f'Cannot write data into shared memory {mem_map_name} '
102-
f'({num_bytes_written} != {content_length})')
101+
'Cannot write data into shared memory %s (%s != %s)',
102+
mem_map_name, num_bytes_written, content_length)
103103
shared_mem_map.dispose()
104104
return None
105105
self.allocated_mem_maps[mem_map_name] = shared_mem_map
@@ -128,8 +128,8 @@ def get_bytes(self, mem_map_name: str, offset: int, count: int) \
128128
"""
129129
if offset != 0:
130130
logger.error(
131-
f'Cannot read bytes. Non-zero offset ({offset}) '
132-
f'not supported.')
131+
'Cannot read bytes. Non-zero offset (%s) not supported.',
132+
offset)
133133
return None
134134
shared_mem_map = self._open(mem_map_name, count)
135135
if shared_mem_map is None:
@@ -168,7 +168,8 @@ def free_mem_map(self, mem_map_name: str,
168168
"""
169169
if mem_map_name not in self.allocated_mem_maps:
170170
logger.error(
171-
f'Cannot find memory map in list of allocations {mem_map_name}')
171+
'Cannot find memory map in list of allocations %s',
172+
mem_map_name)
172173
return False
173174
shared_mem_map = self.allocated_mem_maps[mem_map_name]
174175
success = shared_mem_map.dispose(to_delete_backing_resources)

azure_functions_worker/bindings/shared_memory_data_transfer/shared_memory_map.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,9 @@ def put_bytes(self, content: bytes) -> Optional[int]:
5353
content_length_bytes)
5454
if num_content_length_bytes_written != num_content_length_bytes:
5555
logger.error(
56-
f'Cannot write content size to memory map {self.mem_map_name} '
57-
f'({num_content_length_bytes_written} != '
58-
f'{num_content_length_bytes})')
56+
'Cannot write content size to memory map %s (%s != %s)',
57+
self.mem_map_name, num_content_length_bytes_written,
58+
num_content_length_bytes)
5959
return 0
6060
# Write the content
6161
num_content_bytes_written = self.mem_map.write(content)

azure_functions_worker/dispatcher.py

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -242,8 +242,8 @@ async def _dispatch_grpc_request(self, request):
242242
# Don't crash on unknown messages. Some of them can be ignored;
243243
# and if something goes really wrong the host can always just
244244
# kill the worker's process.
245-
logger.error(f'unknown StreamingMessage content type '
246-
f'{content_type}')
245+
logger.error('unknown StreamingMessage content type %s',
246+
content_type)
247247
return
248248

249249
resp = await request_handler(request)
@@ -298,8 +298,8 @@ async def _handle__functions_metadata_request(self, request):
298298

299299
if not os.path.exists(function_path):
300300
# Fallback to legacy model
301-
logger.info(f"{SCRIPT_FILE_NAME} does not exist. "
302-
"Switching to host indexing.")
301+
logger.info("%s does not exist. "
302+
"Switching to host indexing.", SCRIPT_FILE_NAME)
303303
return protos.StreamingMessage(
304304
request_id=request.request_id,
305305
function_metadata_response=protos.FunctionMetadataResponse(
@@ -320,8 +320,8 @@ async def _handle__functions_metadata_request(self, request):
320320
indexed_function_logs.append(function_log)
321321

322322
logger.info(
323-
f'Successfully processed FunctionMetadataRequest for '
324-
f'functions: {" ".join(indexed_function_logs)}')
323+
'Successfully processed FunctionMetadataRequest for '
324+
'functions: %s', " ".join(indexed_function_logs))
325325

326326
fx_metadata_results = loader.process_indexed_function(
327327
self._functions,
@@ -367,9 +367,10 @@ async def _handle__function_load_request(self, request):
367367
)
368368

369369
logger.info('Successfully processed FunctionLoadRequest, '
370-
f'request ID: {self.request_id}, '
371-
f'function ID: {function_id},'
372-
f'function Name: {function_name}')
370+
'request ID: %s, '
371+
'function ID: %s,'
372+
'function Name: %s', self.request_id, function_id,
373+
function_name)
373374

374375
return protos.StreamingMessage(
375376
request_id=self.request_id,
@@ -592,7 +593,7 @@ async def _handle__close_shared_memory_resources_request(self, request):
592593
to_delete_resources)
593594
results[map_name] = success
594595
except Exception as e:
595-
logger.error(f'Cannot free memory map {map_name} - {e}',
596+
logger.error('Cannot free memory map %s - %s', map_name, e,
596597
exc_info=True)
597598
finally:
598599
response = protos.CloseSharedMemoryResourcesResponse(
@@ -643,16 +644,16 @@ def tp_max_workers_validator(value: str) -> bool:
643644
try:
644645
int_value = int(value)
645646
except ValueError:
646-
logger.warning(f'{PYTHON_THREADPOOL_THREAD_COUNT} must be an '
647-
'integer')
647+
logger.warning('%s must be an integer',
648+
PYTHON_THREADPOOL_THREAD_COUNT)
648649
return False
649650

650651
if int_value < PYTHON_THREADPOOL_THREAD_COUNT_MIN:
651-
logger.warning(f'{PYTHON_THREADPOOL_THREAD_COUNT} must be set '
652-
f'to a value between '
653-
f'{PYTHON_THREADPOOL_THREAD_COUNT_MIN} and '
654-
'sys.maxint. Reverting to default value for '
655-
'max_workers')
652+
logger.warning(
653+
'%s must be set to a value between %s and sys.maxint. '
654+
'Reverting to default value for max_workers',
655+
PYTHON_THREADPOOL_THREAD_COUNT,
656+
PYTHON_THREADPOOL_THREAD_COUNT_MIN)
656657
return False
657658
return True
658659

azure_functions_worker/extension.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -236,24 +236,24 @@ def _try_get_sdk_with_extension_enabled(cls) -> Optional[ModuleType]:
236236
@classmethod
237237
def _info_extension_is_enabled(cls, sdk):
238238
logger.info(
239-
'Python Worker Extension is enabled in azure.functions '
240-
f'({get_sdk_version(sdk)}).'
239+
'Python Worker Extension is enabled in azure.functions (%s).',
240+
get_sdk_version(sdk)
241241
)
242242

243243
@classmethod
244244
def _info_discover_extension_list(cls, function_name, sdk):
245245
logger.info(
246-
f'Python Worker Extension Manager is loading {function_name}, '
247-
'current registered extensions: '
248-
f'{sdk.ExtensionMeta.get_registered_extensions_json()}'
246+
'Python Worker Extension Manager is loading %s, current '
247+
'registered extensions: %s',
248+
function_name, sdk.ExtensionMeta.get_registered_extensions_json()
249249
)
250250

251251
@classmethod
252252
def _warn_sdk_not_support_extension(cls, sdk):
253253
logger.warning(
254-
f'The azure.functions ({get_sdk_version(sdk)}) does not '
255-
'support Python worker extensions. If you believe extensions '
256-
'are correctly installed, please set the '
257-
f'{PYTHON_ISOLATE_WORKER_DEPENDENCIES} and '
258-
f'{PYTHON_ENABLE_WORKER_EXTENSIONS} to "true"'
254+
'The azure.functions (%s) does not support Python worker '
255+
'extensions. If you believe extensions are correctly installed, '
256+
'please set the %s and %s to "true"',
257+
get_sdk_version(sdk), PYTHON_ISOLATE_WORKER_DEPENDENCIES,
258+
PYTHON_ENABLE_WORKER_EXTENSIONS
259259
)

azure_functions_worker/testutils.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -258,8 +258,8 @@ def _run_test(self, test, *args, **kwargs):
258258
self.host_stdout.seek(last_pos)
259259
self.host_out = self.host_stdout.read()
260260
self.host_stdout_logger.error(
261-
f'Captured WebHost stdout from {self.host_stdout.name} '
262-
f':\n{self.host_out}')
261+
'Captured WebHost stdout from %s :\n%s',
262+
self.host_stdout.name, self.host_out)
263263
finally:
264264
if test_exception is not None:
265265
raise test_exception

0 commit comments

Comments
 (0)