I would avoid that style. It isn't very explicit so it becomes difficult without comments to tell that print being exposed outside of the IIFE is intentional. Instead, I would suggest returning print from the function and assigning it there:
var print = (function()
{
var text_log=document.getElementById('text_log_text');
return function(string)
{
text_log.innerHTML+='<br />'+string;
};
})();
Note that polluting the global namespace is discouraged, so really the best answer here is to just not have print exposed outside. This answer assumes you have already thought through that, and either your IIFE is actually nested in another function (so it isn't polluting the global namespace), or you really do want print to be global.
function foo(){}; foo.bar = function(){};bar here would be a "static" property/variable as it is only accessible byfoo.bar