Soru Destek günlüğü nedir, nasıl edinilir ve nasıl oluşturulur?


Bu yüzden destek günlüğü hakkında iyi şeyler duydum. Bu onun varlığını iddia ediyor:

http://boost-log.sourceforge.net/libs/log/doc/html/index.html

Bu öğretici:

http://boost-log.sourceforge.net/libs/log/doc/html/log/tutorial.html#log.tutorial.trivial

Ancak, yükseltme günlüğü desteğin bir parçası değildir. Bu nedenle normal boost dalında değil.

Bir destek günlüğünü buradan ayrı olarak indirebilirsiniz:

http://sourceforge.net/projects/boost-log/

Çok tecrübesiz olabilirim, ancak kurulum talimatlarını çok zayıf buluyorum. Bununla birlikte, klasörleri indirme ve kopyalama ve destek klasörüne lib donduktan sonra, bootstrap ve bjam'ı çalıştırabilirim. Bu, Boost.Filesystem sürümleriyle ilgili, burada bahsedilenlere benzer hatalarla ilgili olarak başarısız olur:

http://boost.2283326.n4.nabble.com/Boost-Log-compilation-on-msvc-2010-fail-td3488502.html

Andrew Semashev'in tavsiyesi (yukarıdaki linkte) "Lütfen Boost.Log v2'yi (SVN trunk'undan) kullanın."

Bakmak https://boost-log.svn.sourceforge.net/svnroot/boost-logSadece sürüm 1'i görebiliyorum.

Bakmak http://svn.boost.org/svn/boost/sandbox/John Torjo tarafından günlüğe kaydetme v2'yi bulabilirim. Ancak, sadece Andrew Semashev'nin bahsettiği destek günlüğü v2 olmayabilecek sözdiziminden.

Bu konuda çok fazla saat geçirdiğimi görünce, biraz yardım alabileceğimi düşündüm ve belki başkaları bu yazıdan ve cevaplardan kazanç sağlayabilir ve kendilerini biraz zamandan tasarruf edebilirler. Daha önce cevaplandığını düşünmüyorum, ve bu tür değişimler gibi cevaplar.

Yani, işte gidiyor: Andrew Semashev'in bahsettiği destek günlüğü v2 nedir? John Torjo'nunkiyle aynı mı? Eğer değilse, onu nerede bulabilirim? Ve nasıl inşa edebilirim?

Teşekkürler

Not; Bunun Visual Studio Express 2010 ile Windows'da olduğunu belirtmeliyim

P.P.S. Görünüşe göre sadece SVN olan "sürüm 2" yi tahmin etmenin de problemleri var, ama bu çizgiyle (bkz. Sergio'nun cevabı aşağıda)

<toolset>msvc:<define>BOOST_FILESYSTEM_VERSION=2

bjam dosyasında en azından derleyebilirim. Ancak bu dosya

#include <boost/log/trivial.hpp>
int main(int, char*[])
{
    BOOST_LOG_TRIVIAL(trace) << "A trace severity message";
    BOOST_LOG_TRIVIAL(debug) << "A debug severity message";
    BOOST_LOG_TRIVIAL(info) << "An informational severity message";
    BOOST_LOG_TRIVIAL(warning) << "A warning severity message";
    BOOST_LOG_TRIVIAL(error) << "An error severity message";
    BOOST_LOG_TRIVIAL(fatal) << "A fatal severity message";
}

Öğreticiden çıkıp, derleme ve bağlama olsa da, herhangi bir çıktı üretmiyor ...


29
2018-05-20 18:51


Menşei


İle çıktı almak için yönetilen #include "boost\log\utility\init\to_file.hpp"  #include "boost\log\utility\init\to_console.hpp" ve logging::init_log_to_file("sample.log"); veya logging::init_log_to_console(); - Cookie
Sadece acılarını hissettim, gönderim için teşekkürler. Bunların hepsinden sonra bile hala benim inşa etmem. - Ramadheer Singh
Boost.Log 1.54.0 itibariyle Boost içinde - jla
@jla: Yani, eğer Boost.Log şimdi Boost'ta ise, bu soruyu oldukça eskimiş yapmaz mı? Eğer öyleyse, OP: Bu yorumu yapmak için onu silmeyi veya Boost 1.54+ ile eski olduğunu işaretlemeyi düşünür müsün? - einpoklum


Cevaplar:


log log v2, bağlandığınız postada Andrey'nin söylediğine göre, bagajı kontrol ederek aldığınız şeydir.

Gerçekten de, bu sürümün de boost :: filesystem v3'e karşı derleme sorunları var gibi görünüyor.

Bu da sizin durumunuzsa, ekledikten sonra bir geçici çözüm derleniyor

<define>BOOST_FILESYSTEM_VERSION=2

jamfile.

Bu işe yaramazsa, kitaplıkların tek bir iş parçacığı veya çok iş parçacıklı sürümünü oluşturup oluşturmadığınızı kontrol edin. Multi-threadred boost-log daha test edilmelidir (Andrey'ye göre).

Umarım bu yardımcı olur ... Ben denemedim ...

DÜZENLE:

nereye eklenir?

Onu ekleyebilirim requirements bölümü boost-log/libs/log/build/Jamfile.v2, shared alt bölüm:

project boost/log
    : source-location ../src
    : requirements
       <link>shared:<define>BOOST_LOG_DLL
       <link>shared:<define>BOOST_FILESYSTEM_VERSION=2

EDIT: Cookie’nin yorumundan BOOST_FILESYSTEM_VERSION=2 olarak belirtilmelidir

       <link>msvc:<define>BOOST_FILESYSTEM_VERSION=2

değil shared.


8
2018-05-20 19:11



@Cookie: Bütün bunları denediysen, özür dilerim ... - sergio
Üzgünüm, ama bunu tam olarak nereye eklerim? - Cookie
lütfen, benim düzenle ... - sergio
project boost/log : source-location ../src : requirements <snip> # shared:BOOST_LOG_DLL shared:BOOST_FILESYSTEM_VERSION=2 # not working <toolset>msvc:<define>BOOST_FILESYSTEM_VERSION=2 # compiles <snip>  Hmm formatlama biraz kesik ... her neyse ... ikinci satır derlediğinde, cevabınızdaki çizgi pek işe yaramadı. - Cookie
teşekkürler, sabit biçimlendirme ve diğer okuyucular için teklifinizi ekledi. - sergio


Bu, Linux kutumda Boost.Log'u kurmak için takip ettiğim yöntem. Boost kitaplıklarını kurmadan ve yüklemeden önce önemli bir not: Bir iş parçacığı kitaplığı gibi yüklediğinizden emin olun. pthreads. Çoğu paket yöneticileri bunlara sahip olmalı.

İşte inşa adımları:

Boost'u halihazırda kaynağından yüklediyseniz, bunun bir sonraki adımı devam eder. Aksi halde İşte (tercihen en son sürüm (v1.46). v1.45 kullandım). Destek kütüphanelerini şu şekilde çıkartın: /opt. Boost.Log ile birlikte kütüphaneler kurabiliriz.

  • Boost.Log indirin Sourceforge'unda.
  • Boost.Log kaynak arşivini bir klasörde ayıkla - söyle /opt. Günlük klasörünü kopyalayın: /opt/boost-log-1.0/boost boost kaynak dizininize /opt/Boost_1_45_0/boost (siz onu aldığınızı varsayarak /opt).
  • Günlük klasörünü kopyalayın: /opt/boost-log-1.0/libs destek libs dizinine /opt/Boost_1_45_0/libs (siz onu aldığınızı varsayarak /opt). Başka bir Boost kitaplığı yüklemediyseniz, şu adımları izleyin:
    • cd /opt/Boost_1_45_0
    • .bootstrap.sh --show-libraries - Bu, oluşturulacak ve kurulacak olan tüm kitaplıkları listeler. Görmelisin log bunun bir parçası olarak listelenmiştir.
    • .bootstrap.sh --with-libraries=all --prefix=/usr/local --includedir=/usr/local/include --libdir=/usr/local/lib
    • ./bjam install

Sonunda emin ol $LD_LIBRARY_PATH vardır /usr/local/lib (belirtilen yol bjam yerleşik kütüphaneleri kurmak için). Eğer düzenlemek değilse ~/.bashrc ve aşağıdakini ekleyin:

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
export LD_LIBRARY_PATH

14
2018-05-20 19:17



mytechnotebook.wordpress.com/2011/01/04/... - Offirmo
@Offirmo: Bu benim o kadar aktif olmayan blog'um :( Kendi referansım için yazdım. - yasouser


Bulduğum şeyi test edip test ettikten sonra.

  • İstediğiniz desteği indirin (kararlı sürüm 1.51'de test ettim)

  • Checkout yükseltme-günlüğü İşte ve kopyala <boost-log>/boost/log ve <boost-log>/libs/log için <boost>/boost/log ve <boost>/libs

  • Sahip olduğunuzdan emin olun desteklenen derleyici (Benim problemim buydu!. gcc 4.1.7 ile çalıştı)

  • Koşmak

    ./bootstrap.sh --with-libraries=all --prefix=<dir_to_install>
    

    ve

    ./b2 address-model=32
    

Her şey plana göre giderse, bir dizin <boost>/stage/libs derlenmiş kütüphaneler (libboost_log.so dahil) ile oluşturulacaktır.

Notlar:

  • Emin değilim neden ama önek işe yaramadı. Orada inşa edilen kütüphaneleri görmeyi bekliyordum.

  • kullanım b2 değil bjam.

  • Değiştirmeye gerek yok Jamfile içinde <boost-log>.

  • Bir sürü uyarı aldım, ancak günlük oluştururken yok.

Umarım birilerine yardım eder.


2
2017-09-27 14:40





Andrew'un cevabını doğru olarak yorumlarsam, önerisi Boost.Log'un paketlenmiş sürümlerinden birini kullanmamak, ancak SourceForge'daki SVS deposu SVN deposundan SVN çıkışını yapmaktır. Gövdedeki dosyalara hızlıca baktım ve v1'e herhangi bir başvuru bulamıyorum.

Ve hayır, John Torjo'nun Boost.Log v2'den bahsetmediğinden eminim, ama Boost.Log'un daha yeni bir sürümü henüz piyasaya sürülmemiş.

Boost.Log kullanıyoruz ve şu ana kadar çok mutluyum; Sorunuz aslında 1.46.1 ile Boost.Log oluşturmak için ne yapacağımı anlamaya yardımcı oldu ...


1
2018-05-20 18:59



İyi. Bu cevaba cevap olarak kontrol ettim boost-log.svn.sourceforge.net/svnroot/boost-log. Bununla birlikte, ben hala v1 olarak düşünüyorum ve her iki şekilde de, hala dosya sistemi ile ilgili hata alıyorum. - Cookie
Sadece gövdeyi sourceforge'dan kontrol ettim ve bu da Boost 1.46.1 ve VS2010 ile iyi bir performans sergiliyor. - Timo Geusch
Hmmm bilgi için teşekkürler. Garip. - Cookie


Boost-log-1-1 ile 1.50.0 güçlendirirken, 1197 satırında text_file_backend.cpp bilinmeyen sembol

Windows MSVC 2010 kullanıyorum, ancak sahip olduğum sorunun diğer platformlarda da ortak olabileceğinden şüpheleniyorum. Boost.log kaynaklarını 1.51 kaynak ağacına kopyaladım ve bootstrap.bat ve. \ B2 komutlarına göre çalıştırdım. Yapı başarısız oldu, get_generic_category () öğesinin, 1197 satırında text_file_backend.cpp dosyasında bilinmeyen bir sembol olduğundan şikayetçi oldu

Text_file_backend.cpp 1197 satırını değiştirdim, böylece şimdi okuyor

system::error_code(system::errc::io_error, system::generic_category()));

ve yapıyı yeniden çalıştırdım. Yapı işe yaradı.

Umarım bu, boost-log kütüphanesini 1.51 destekle inşa etmekte zorluk çeken başka birine yardım eder

Bakınız http://www.boost.org/doc/libs/1_51_0/libs/system/doc/reference.html#Deprecated-names Bu değişiklik hakkında daha fazla bilgi için.

Düzenleme: Subversion gövdesinden direkt olarak boost-log kaynaklarını kullanarak tekrar denedim ve OK'yi derledim. Yani çözüm: boost-log 1.1'i yok sayın ve Subversion gövdesini kullanın.


1
2017-09-13 12:38



Bu, destek-kütüğün gövdesine karşı gerçekleşirse, o zaman sorunların farkında olan yazarlar forumlarına göndermelisiniz. - Roger Stewart
Roger Stewart'a cevap. Destek web sitesinden indirdiğim sıkıştırılmış destek 1.51 kaynaklarını kullandım. Yine de, yazarın forumuna gönderme konusunda iyi bir nokta. Yapacağım. - eatyourgreens