Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
OpenDAS
dynamo
Commits
a702a44b
Unverified
Commit
a702a44b
authored
Apr 15, 2025
by
ishandhanani
Committed by
GitHub
Apr 15, 2025
Browse files
fix: ensure `VLLM_LOGGING_LEVEL` stems from `DYN_LOG` (#692)
parent
c281fde3
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
60 additions
and
9 deletions
+60
-9
deploy/dynamo/sdk/src/dynamo/sdk/lib/logging.py
deploy/dynamo/sdk/src/dynamo/sdk/lib/logging.py
+60
-9
No files found.
deploy/dynamo/sdk/src/dynamo/sdk/lib/logging.py
View file @
a702a44b
...
...
@@ -13,9 +13,11 @@
# See the License for the specific language governing permissions and
# limitations under the License.
import
json
import
logging
import
logging.config
import
os
import
tempfile
from
dynamo.runtime.logging
import
configure_logger
as
configure_dynamo_logger
...
...
@@ -32,16 +34,11 @@ def configure_server_logging():
# Configure the logger with Dynamo's handler
configure_dynamo_logger
()
# Disable VLLM's default configuration
os
.
environ
[
"VLLM_CONFIGURE_LOGGING"
]
=
"0"
# map the DYN_LOG variable to a logging level
dyn_var
=
os
.
environ
.
get
(
"DYN_LOG"
,
"info"
)
dyn_level
=
log_level_mapping
(
dyn_var
)
# loggers that should be configured to INFO
info_loggers
=
[
"vllm"
,
"nixl"
,
"__init__"
]
for
logger_name
in
info_loggers
:
logger
=
logging
.
getLogger
(
logger_name
)
logger
.
handlers
=
[]
logger
.
setLevel
(
logging
.
INFO
)
logger
.
propagate
=
True
configure_vllm_logging
(
dyn_level
)
# loggers that should be configured to ERROR
error_loggers
=
[
"bentoml"
,
"tag"
]
...
...
@@ -50,3 +47,57 @@ def configure_server_logging():
logger
.
handlers
=
[]
logger
.
setLevel
(
logging
.
ERROR
)
logger
.
propagate
=
True
def
log_level_mapping
(
level
:
str
)
->
int
:
"""
The DYN_LOG variable is set using "debug" or "trace" or "info.
This function maps those to the appropriate logging level and defaults to INFO
if the variable is not set or a bad value.
"""
if
level
==
"debug"
:
return
logging
.
DEBUG
elif
level
==
"info"
:
return
logging
.
INFO
elif
level
==
"warn"
or
level
==
"warning"
:
return
logging
.
WARNING
elif
level
==
"error"
:
return
logging
.
ERROR
elif
level
==
"critical"
:
return
logging
.
CRITICAL
elif
level
==
"trace"
:
return
logging
.
INFO
else
:
return
logging
.
INFO
def
configure_vllm_logging
(
dyn_level
:
int
):
"""
vLLM requires a logging config file to be set in the environment.
This function creates a temporary file with the VLLM logging config and sets the
VLLM_LOGGING_CONFIG_PATH environment variable to the path of the file.
"""
os
.
environ
[
"VLLM_CONFIGURE_LOGGING"
]
=
"1"
vllm_level
=
logging
.
getLevelName
(
dyn_level
)
# Create a temporary config file for VLLM
vllm_config
=
{
"formatters"
:
{
"simple"
:
{
"format"
:
"%(message)s"
}},
"handlers"
:
{
"dynamo"
:
{
"class"
:
"dynamo.runtime.logging.LogHandler"
,
"formatter"
:
"simple"
,
"level"
:
vllm_level
,
}
},
"loggers"
:
{
"vllm"
:
{
"handlers"
:
[
"dynamo"
],
"level"
:
vllm_level
,
"propagate"
:
False
}
},
"version"
:
1
,
"disable_existing_loggers"
:
False
,
}
with
tempfile
.
NamedTemporaryFile
(
mode
=
"w"
,
suffix
=
".json"
,
delete
=
False
)
as
f
:
json
.
dump
(
vllm_config
,
f
)
os
.
environ
[
"VLLM_LOGGING_CONFIG_PATH"
]
=
f
.
name
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment