Nano Hash - криптовалюты, майнинг, программирование

Как войти в разные приложения с одного контроллера с Grails и log4j

У меня есть контроллер, в котором я хотел бы входить в разные приложения в зависимости от уровня. Так, например, общее использование будет записано в файл INFO Usage.log. Определенные события, которые я определяю, должны попадать в WARN warning.log.

Вот часть моей конфигурации log4j…

appenders {
    file name: "usageAppender",
        file: " /usr/local/logs/cs-wst/usage.log"

    file name: "warningAppender",
        file: " /usr/local/logs/cs-wst/warning.log"
}

info usageAppender: 'grails.app'

Когда я делаю это и запускаю подобный оператор в моем контроллере log.info("request method fired"), строка появляется в use.log, но у меня возникают проблемы с работой других уровней. Я хотел бы запустить эти два оператора в контроллере

log.info("request method fired")
…
log.warn("invalid credentials")

И запишите их в соответствующий файл. Кто-нибудь может помочь?

30.09.2014

Ответы:


1

Ссылка на код ниже;

appenders {

    appender new DailyRollingFileAppender(
            name: 'dailyerrorAppender',
            threshold: org.apache.log4j.Level.DEBUG,
            datePattern: "'.'yyyy-MM-dd",  // See the API for all patterns.
            fileName: "./error",
            layout: pattern(conversionPattern:'%d [%t] %-5p %c{2} %x - %m%n')
    )

    appender new DailyRollingFileAppender(
            name: 'dailywarnAppender',
            threshold: org.apache.log4j.Level.WARN,
            datePattern: "'.'yyyy-MM-dd",  // See the API for all patterns.
            fileName: "./warn",
            layout: pattern(conversionPattern:'%d [%t] %-5p %c{2} %x - %m%n')
    )

}
environments {
    development{
        debug dailyerrorAppender:"errors", additivity: false
        warn dailywarnAppender:"warns", additivity: false
    }
    qa{
        debug dailyerrorAppender:"errors", additivity: false
        warn dailywarnAppender:"warns", additivity: false
    }
    production{
        debug dailyerrorAppender:"errors", additivity: false
        warn dailywarnAppender:"warns", additivity: false
    }
}

def errorLog = Logger.getLogger("errors")

errorLog.debug("your error messages")

def warnLog = Logger.getLogger("warns")

warnLog.warn("your warn messages")
30.09.2014
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..