<div dir="ltr"><div>ok, for testing, I removed the variable from the map, and add one line in a 2-way SSL server config, to create a fresh new variable:</div><div><br></div><div>set $test_var "test";</div><div><br></div><div>For a request without client cert (400), I see neither "test", nor "-" in the access log for $test_var. I only see blank, as if the $test_var was set to "".</div><div><br></div><div>Here is the config:</div><div><br></div><div>log_format custom '$remote_addr - $remote_user [$time_local] '<br>                    '"$request" $status $test_var';<br>server {<br> listen *:443 ssl;<br> server_name _;<br><br> ssl_certificate /opt/nginx/ssl/localhost.crt;<br> ssl_certificate_key /opt/nginx/ssl/localhost.key;<br> ssl_client_certificate /opt/nginx/ssl/localhost.crt;<br> ssl_verify_client on;<br> ssl_session_cache shared:SSL:10m;<br> ssl_session_timeout 10m;<br><br> set $test_var "test";<br><br> access_log /tmp/access.log custom;<br><br>}</div><div><br></div><div>cat /tmp/access.log <br>127.0.0.1 - - [30/Nov/2020:23:25:12 +0000] "GET / HTTP/1.1" 400 <br></div><div><br></div><div><br></div><div><br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Nov 30, 2020 at 2:46 PM Maxim Dounin <<a href="mailto:mdounin@mdounin.ru">mdounin@mdounin.ru</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hello!<br>
<br>
On Mon, Nov 30, 2020 at 02:04:35PM -0800, Frank Liu wrote:<br>
<br>
> I may have mixed this with special upstream variables, eg:<br>
> $upstream_http_something. When upstream response header doesn't existing,<br>
> the variable was logged - in the nginx access logs.<br>
<br>
When a variable value is not found, it's logged as "-", that's <br>
expected behaviour.  That's documented in the log_format directive <br>
description (<a href="http://nginx.org/r/log_format" rel="noreferrer" target="_blank">http://nginx.org/r/log_format</a>):<br>
<br>
: If the variable value is not found, a hyphen (“-”) will be <br>
: logged.<br>
<br>
This doesn't apply to found but empty values as in your example <br>
though.<br>
<br>
-- <br>
Maxim Dounin<br>
<a href="http://mdounin.ru/" rel="noreferrer" target="_blank">http://mdounin.ru/</a><br>
_______________________________________________<br>
nginx mailing list<br>
<a href="mailto:nginx@nginx.org" target="_blank">nginx@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx" rel="noreferrer" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx</a></blockquote></div>