ОсновноеRadiotalkПользовательское
Общие вопросы по интернет радио вещанию
6   •   Посмотреть все темы

Поделить логирование по потокам

 

86
pusik @pusik
Есть 3 потока с разными битрэйтами. Информация по проигранным трэкам пишется в 1 файл /var/icecast/logs/playlist.log
Вырезка из конфига исекаста
<paths>
<basedir>/etc/icecast</basedir>
<logdir>/var/icecast/logs</logdir>
<webroot>/var/icecast/web</webroot>
<adminroot>/var/icecast/admin</adminroot>
<pidfile>/var/icecast/pids/icecast.pid</pidfile>
<alias source="/" dest="/status.xsl"/>
</paths>
<logging>
<accesslog>access.log</accesslog>
<errorlog>error.log</errorlog>
<playlistlog>playlist.log</playlistlog>
<loglevel>3</loglevel> <!-- 4 Debug, 3 Info, 2 Warn, 1 Error -->
<logsize>10000</logsize> <!-- Max size of a logfile -->
</logging>
Вырезка из файла воспроизведённых трэков:
16/Feb/2013:20:12:39 +0600|/BloodCast-256|0|Welicoruss - Сыны Севера
16/Feb/2013:20:13:25 +0600|/BloodCast-128|0|Necrolatreia - Чёрне правосудие
16/Feb/2013:20:15:04 +0600|/BloodCast-96|0|Necrolatreia - The new truth
16/Feb/2013:20:15:45 +0600|/GunFire-128|0|Grendel - Interrogation Leash
16/Feb/2013:20:16:45 +0600|/BloodCast-256|0|Deptera - Pressure
16/Feb/2013:20:18:46 +0600|/BloodCast-96|0|RIVERDALE - The New Era
16/Feb/2013:20:19:43 +0600|/BloodCast-128|0|Necrolatreia - Судный день
16/Feb/2013:20:20:24 +0600|/GunFire-128|0|God Module - Denial
16/Feb/2013:20:21:54 +0600|/BloodCast-256|0|Hellish Oblivion - Caligance
16/Feb/2013:20:23:23 +0600|/BloodCast-128|0|Spiteful Grin - Somnambulist
16/Feb/2013:20:24:06 +0600|/BloodCast-96|0|MODERIX - Вар-Шаб-Ниггурат
16/Feb/2013:20:24:56 +0600|/BloodCast-256|0|Welicoruss - Карна
16/Feb/2013:20:24:57 +0600|/GunFire-128|0|Tactical Sekt - soulless
16/Feb/2013:20:27:43 +0600|/BloodCast-128|0|RIVERDALE - Silence In Me
16/Feb/2013:20:28:12 +0600|/BloodCast-96|0|Чёрные Озёра - Девятнадцатый Поход
16/Feb/2013:20:30:39 +0600|/GunFire-128|0|Grendel - Shortwired (Statik Sky Remix)
16/Feb/2013:20:31:18 +0600|/BloodCast-256|0|Чёрные Озёра - В Объятья Зла!
16/Feb/2013:20:31:49 +0600|/BloodCast-128|0|BELTANE - Hellfuck (Instrumental)
16/Feb/2013:20:31:50 +0600|/BloodCast-96|0|Spiteful Grin - Ice Void
16/Feb/2013:20:36:04 +0600|/GunFire-128|0|Suicide Commando - Desire (Dead Body Remix)
16/Feb/2013:20:36:46 +0600|/BloodCast-128|0|Dieses - Black Victory Of Death (Darkthrone Cover)
16/Feb/2013:20:36:49 +0600|/BloodCast-256|0|Mysterial - Умирающий Свет
16/Feb/2013:20:40:28 +0600|/BloodCast-128|0|Nightside Glance - Changing Lives
16/Feb/2013:20:41:01 +0600|/GunFire-128|0|God Module - Forseen
16/Feb/2013:20:41:26 +0600|/BloodCast-256|0|В Отражениях - Чернь
16/Feb/2013:20:44:13 +0600|/BloodCast-128|0|Voice of Midnight - Рунный камень
16/Feb/2013:20:44:24 +0600|/BloodCast-96|0|Fatal Band - Cornered
16/Feb/2013:20:46:08 +0600|/BloodCast-256|0|Atra Hora - Styx
16/Feb/2013:20:46:24 +0600|/GunFire-128|0|Grendel - New Flesh
16/Feb/2013:20:46:26 +0600|/BloodCast-96|0|Tacit Fury - Territory (Sepultura Cover)
16/Feb/2013:20:48:41 +0600|/BloodCast-128|0|BFI - Last Night Together With My Friends
16/Feb/2013:20:48:47 +0600|/BloodCast-256|0|Bloodlust - A New Slave
16/Feb/2013:20:50:57 +0600|/BloodCast-96|0|Fatal Band - The Anti-Symbol
16/Feb/2013:20:51:02 +0600|/GunFire-128|0|God Module - Corpses (A Zombie Love Song)
16/Feb/2013:20:51:54 +0600|/BloodCast-256|0|Bloodlust - Desecarated Thoughts
16/Feb/2013:20:52:26 +0600|/BloodCast-128|0|DEF/LIGHT - My sacrifice
16/Feb/2013:20:52:35 +0600|/BloodCast-96|0|Yansen - Sowelu (intro)
Суть в следующем. Возможно ли поправить конфиг исекаста так чтобы логирование по каждому потоку производилось в отдельный файл. К примеру:
поток 256 кб/сек - логирование в playlist256.log
поток 128 кб/сек - логирование в playlist128.log
поток 96 кб/сек - логирование в playlist96.log
Вышеуказанное связано с тем, что организую список последних 10 воспроизведённых трэков.
<?PHP
echo "<meta http-equiv='refresh' content='10'>";
echo '<span style="color:#8A0808;"><span style="font-weight:bold";><span style="font-style:italic";><br>Композиции прозвучавшие в эфире:</span></span></span> <br>';
header('Content-type: text/html; charset=cp1251');
$data = file("/var/icecast/logs/playlist.log");
$limit = count($data) - 11;
for($i=count($data);$i>$limit;$i--){
$mass = explode("|",$data[$i]);
//echo $mass[0]." "; echo $mass[3]."<br>";
echo $mass[3]."<br>";
}
?>
Данный парсер смотрит файл /var/icecast/logs/playlist.log и отображает инфу (с 3-х потоков) следующим видом:

Berserk Revolt - Collapsed Land
Tarantul - Чёрная вдова
Deptera - Break the Bonds
Northward Supremacy - Forgotten Beauty
Spiteful Grin - Somnambulist
Welicoruss - Апейрон
Welicoruss - Апейрон
Necrolatreia - Чёрне правосудие
Necrolatreia - The rage wrath and pain of the Immortal
Necrolatreia - Чёрне правосудие
Или может быть есть какой альтернативный вариант?

727
Leff27 @Leff27
Лайфхак:
Замените в скрипте
echo $mass[3]."<br>";
На это

if( $lastSong != $mass[3] )
echo $mass[3]."<br>";
$lastSong = $mass[3];

86
pusik @pusik
а вывести в отдельные логи никак нельзя?

78
djmarkus @djmarkus
Хороший вопрос! мне бы так же разделить логи access для каждого mount